2010-11-28 127 views
0
<?php 
$query = 'q=Riha47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a4744444444444444444444444444444444444444444444444na&start-index=60&max-results=20'; 
$pattern = "/^(?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*'()\[\];\/?:@&=+$,])*$/"; 

if (preg_match($pattern, $query)) 
    echo 'true'; 
else 
    echo 'false'; 

该脚本没有任何输出......它提供下载php文件0字节.. 我需要修复它,因为它可能仍然是Zend_Gdata中的错误!对不起英语不好。PHP 5.3.3错误或preg_match错误验证?

编辑:

你有5.3.3版本的PHP? 如果在表达式的末尾添加“U”,问题就会消失。 什么是f * ck?

+1

当我运行它时会打印“true”。 – 2010-11-28 22:07:48

回答

0
$query = 'q=Riha47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a47444444444444444444444444444444444444444444444444444444444444a4744444444444444444444444444444444444444444444444na&start-index=60&max-results=20'; 

if (preg_match('#^(?:%[[:xdigit:]]{2}|[A-Za-z0-9-_.!~*\'()[\];/?:@&=+$,])*$#i', $query)) { 
    echo "TRUE"; // THIS CASE 
} else { 
    echo "FALSE" 
}