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我認爲這可能涉及d以某種方式配置事物,任何想法是什麼?
我還發現這可能是相關的: https://bugs.php.net/bug.php?id=51305&edit=1
通知$網址是例2中缺少什麼的var_dump($網址)返回? – 2012-04-23 22:04:57
@Dagon,因爲'filter_var'在* malformed *輸入的情況下返回'false',當它被轉換成字符串時它是空字符串。 @ user893730你確定像'FILTER_VALIDATE_URL'這樣的常量沒有被重新定義嗎?兩臺服務器是否有相同的操作系統? – kirilloid 2012-04-23 22:06:46
這就是爲什麼我要求的var_dump的結果:_) – 2012-04-23 22:09:26