異なるサーバーに異なる動作を、ここで私が実行しているコードは次のとおりです。に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
通知の$ urlはのvar_dump($ URL)のリターンを何例2に欠けていますか? –
@Dagon列に変換空の文字列であり、*不正な形式の入力の場合には 'false'を返しfilter_var''ため。 @ user893730確かに、 'FILTER_VALIDATE_URL'のような定数は再定義されていませんか?両方のサーバが同じOSを持っていますか?私はのvar_dumpの結果を求めた理由です – kirilloid
:1秒間_) –