내가 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의 버그 1가 발생했습니다 https://bugs.php.net/bug.php?id=51305&edit=1
통지 $ URL을 위해서 var_dump ($ URL이) 무엇을 반환하지 예 2에 누락 된? –
@Dagon 왜냐하면'filter_var'는 * malformed * input의 경우'false'를 반환하기 때문에 빈 문자열이고 문자열로 변환 될 때'false'를 반환하기 때문입니다. @ user893730'FILTER_VALIDATE_URL'과 같은 상수는 재정의되지 않습니까? 두 서버 모두 동일한 OS입니까? – kirilloid
그래서 내가 var_dump의 결과를 물었습니다 : _) –