$var = "http://site.com/image.png";
if (file_exists($var))
echo 'yes';
else
echo 'no';
왜이 스크립트는 항상 false
을 반환합니까?file_exists 항상 false
$var = "http://site.com/image.png";
if (file_exists($var))
echo 'yes';
else
echo 'no';
왜이 스크립트는 항상 false
을 반환합니까?file_exists 항상 false
실제로는 이 아니기 때문에은 실제로 파일이며 URL이 아닙니다.
PHP5까지는 file_exists
함수가 파일 또는 디렉토리의 존재 여부를 감지하기위한 것입니다. PHP5에서
팁 : PHP 5.0.0로,이 기능을 일부 사용할 수 있습니다를 URL 래퍼. stat() 패밀리 기능을 지원하는 래퍼를 결정하려면 지원되는 프로토콜 및 래퍼를 참조하십시오.
래퍼는, 불행하게도, the http
one does not support stat
, file_exists
이 작동 할 수 있도록하는 전제 조건 here 자세한하지만.
서버에서 실행중인 경우 $_SERVER['DOCUMENT_ROOT']
을 사용하여 변환하거나 파일 시스템에서 다른 방법을 찾을 수 있습니다.
변수는 시스템이 아닌 URL을 나타내는 경로 여야합니다. 예를 들어
$var = "/var/www/html/image.png";
대부분의 경우 서버가 PHP 내부에서 외부 연결을 허용하지 않을 수 있습니다.
로컬 파일을 열고 해당 파일이 작동하는지 확인할 수 있습니다. 그렇다면 코드가 정확합니다.
allow_url_fopen
이 켜짐으로 설정되어 있는지 확인하십시오. 원격 파일의 존재를 확인하려는 경우
신경 쓰지 마라. 나는 결론에 도달했다. @ paxdiablo가 정답을 가지고 있습니다. – berkes
은 (실제로는 "자원")를 사용
$i = get_headers($url);
$ok = strpos($i[0], "200");
그리고 HTTP 상태 코드를 확인합니다.
컴퓨터 (또는 웹 서버)의 실제 경로가 아닌 URL을보고 있으므로 – Phill