小编Jas*_*OOO的帖子

PHP正则表达式:如何匹配\ r和\n而不使用[\ r \n]?

我已经测试了\v(垂直空白区域)匹配\r\n和它们的组合,但我发现\v它不匹配\r\n.以下是我正在使用的代码..

$string = "
Test
";

if (preg_match("#\v+#", $string )) {
  echo "Matched";
} else {
  echo "Not Matched";
}
Run Code Online (Sandbox Code Playgroud)

更清楚的是,我的问题是,是否有其他替代品可供选择\r\n

php regex pcre newline

15
推荐指数
3
解决办法
1万
查看次数

这是什么意思:在长度 - 恒定时间内比较两个字符串$ a和$ b?

在学习密码散列和保存数据库时,我发现了这篇文章:https://crackstation.net/hashing-security.htm#phpsourcecode

一切都很清楚,除了这个功能,我无法理解为什么不使用正常的平等?它的意思是:在长度 - 恒定时间内比较两个字符串$ a和$ b.

// Compares two strings $a and $b in length-constant time.
function slow_equals($a, $b)
{
    $diff = strlen($a) ^ strlen($b);
    for($i = 0; $i < strlen($a) && $i < strlen($b); $i++)
    {
        $diff |= ord($a[$i]) ^ ord($b[$i]);
    }
    return $diff === 0;
}
Run Code Online (Sandbox Code Playgroud)

php logic function

10
推荐指数
1
解决办法
3624
查看次数

Mysql Bulk更新性能改进(当...案例时)

我有这样的查询,应该在每个MySQL操作后执行.此查询现在正在减慢页面加载速度,因为数据增加了,我做了所有事情,如正确的索引,但查询仍然相对较慢.

有没有其他方法来执行这些检查?

$query = "
UPDATE {$tprefix}wh_profg 
   SET status =
       CASE 
       WHEN 
          batchno in (
            select 
                batchno 
            from 
                {$tprefix}wh_profulldetail 
            where 
                remainingdays <= 0
          )
       THEN 
          'expired'

       WHEN 
          QC = 'rejected' and QA != 'rejected' 
            and status != 'expired' 
       THEN 
          'QC-rejected'

       WHEN 
          QA = 'rejected' and QC != 'rejected' 
            and status != 'expired' 
       THEN 
          'QA-rejected'

       WHEN 
          QA = 'rejected' and QC = 'rejected' 
            and status != 'expired' 
       THEN 
          'QA&QC-rejected'

       WHEN 
          (
            batchno in (
            select 
                batchno 
            from 
                {$tprefix}wh_profulldetail 
            where 
                available <= …
Run Code Online (Sandbox Code Playgroud)

mysql sql database-performance query-performance

6
推荐指数
1
解决办法
428
查看次数

为什么 SELECT * FROM Table where username = 0 显示所有行?[用户名列是 varchar]

考虑以下方案:

CREATE TABLE IF NOT EXISTS `test` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `test`
--

INSERT INTO `test` (`user_id`, `username`) VALUES
(1, 'Jason'),
(2, 'OOO'),
(3, 'Stack'),
(4, 'Overflow');
Run Code Online (Sandbox Code Playgroud)

这个查询:

SELECT * FROM TEST WHERE username = 0
Run Code Online (Sandbox Code Playgroud)

表明:

| USER_ID | USERNAME |
----------|----------|--
|       1 |    Jason |
|       2 |      OOO |
|       3 |    Stack |
| …
Run Code Online (Sandbox Code Playgroud)

mysql sql

0
推荐指数
1
解决办法
1523
查看次数

jQuery卸载事件仅用于关闭窗口而不用于链接导航

我在关闭页面时使用此代码注销用户,但用户也会在点击其他链接(同一网站)时注销:

  $( window ).unload(function() {
    $.ajax({url:"?logout&leave=yes", async:false})
  });
Run Code Online (Sandbox Code Playgroud)

有没有办法区分链接导航和真实页面关闭?

编辑:

我目前正在实施此解决方案,但它缺乏检测页面重新加载

  $('a').click(function(){
      var url = $(this).attr("href");
      window.onbeforeunload = null;
      $(window).unbind('beforeunload');
      window.location = url;
  });
Run Code Online (Sandbox Code Playgroud)

ajax jquery event-handling javascript-events

0
推荐指数
1
解决办法
1万
查看次数