2012-04-23 8 views
1

異なるサーバーに異なる動作を、ここで私が実行しているコードは次のとおりです。にfilter_varが、私は私の異なるサーバ上の異なる方法にfilter_var作品だと思い

$url = "http://www.my-domain.com"; 
$urlOriginal = "http://www.my-domain.com"; 
$url = filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_HOST_REQUIRED); 
echo $url; 
echo "<br/>Php version: " . phpversion(); 


echo "<br/><h1>"; 
if ($url == $urlOriginal){ 
    echo "it worked because $url == $urlOriginal"; 
} else { 
    echo "it didn't work, because $url != $urlOriginal"; 
} 
echo "</h1>"; 

つのサーバー上の出力がオン

http://www.my-domain.com 
Php version: 5.2.13 
it worked because http://www.my-domain.com == http://www.my-domain.com 

ですその他

Php version: 5.2.13 
it didn't work, because != http://www.my-domain.com 

彼らはどちらも同じバージョンのPHPを使用しているのでこれはおそらく関連していると思います何とか物事がどのように構成されているのか、どんなアイデアなのか?

私も関連があるかもしれないこれを見つけた:ハイフンを含むドメインのPHP 5.2.13のバグを認められたhttps://bugs.php.net/bug.php?id=51305&edit=1

+0

通知の$ urlはのvar_dump($ URL)のリターンを何例2に欠けていますか? –

+1

@Dagon列に変換空の文字列であり、*不正な形式の入力の場合には 'false'を返しfilter_var''ため。 @ user893730確かに、 'FILTER_VALIDATE_URL'のような定数は再定義されていませんか?両方のサーバが同じOSを持っていますか?私はのvar_dumpの結果を求めた理由です – kirilloid

+0

:1秒間_) –

答えて

1

。同じバグは、PHP 5.3.2が存在していたため、同時に壊れたり修正されたりしていました。 PHP 5.2.14と5.3.3以降は、この特定のバグに関して5.2.12/5.3.1と同様にうまく動作します。 1台のサーバ作品や他には、異なるオペレーティングシステムは、ソースからPHPをインストールするためにそれらは多くの場合、異なる作り、様々な適用のパッチ(またはしない)と異なるPHPのインストールを提供していない理由については

。コードが動作したサーバにはPHP 5.2.13のバージョンにパッチが適用されていますが、他のサーバはパッチが適用されていません。

https://bugs.php.net/51192

関連する問題