2010-11-28 128 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" 
}