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>";
1つのサーバーでの出力は
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 を使用しているため、これはおそらく構成方法に関係していると思いますが、それは何ですか?
関連する可能性のあるこれも見つけました: https://bugs.php.net/bug.php?id=51305&edit=1