我已经测试了\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
?
在学习密码散列和保存数据库时,我发现了这篇文章: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) 我有这样的查询,应该在每个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) 考虑以下方案:
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) 我在关闭页面时使用此代码注销用户,但用户也会在点击其他链接(同一网站)时注销:
$( 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)