2010-11-28 4 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'; 

スクリプトは、それが0バイトのphpファイルをダウンロードするために提供しています...出力として何もしています。.. それはおそらくまだZend_Gdataにバグだから、私はそれを修正する必要があります!悪い英語で申し訳ありません。PHP 5.3.3 bugまたはpreg_match bad validate?

EDIT:

あなたは、PHPの5.3.3バージョンがありますか? 式の末尾に「U」を追加すると、問題は消えます。 f * ckとは何ですか?

+1

これは実行時に「真」と表示されます。 –

+0

私にとっても "真"です。 –

答えて

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" 
}