2012-02-09 1 views
-1

allow_url_fopen이 꺼져있는 cdn 서버에서 이미지를 가져 오는 사이트에서 작업 할 때 allow_url_fopen = off를 의미합니다.allow_url_fopen = off로 원격 서버의 이미지가 존재하는지 확인합니다.

문제는 주 사이트에서 이미지를 표시하기 전에 cdn 서버에서 이미지의 존재를 확인해야한다는 것입니다. 이미지가 존재하면 그렇지 않은 것으로 보일 것입니다.

file_exists 및 file_get_contents는 allow_url_fopen = on이 필요하므로 작동하지 않습니다.

다른 방법이 있습니까 ???

도움이 될 것입니다. 당신은 cUrl을 사용할 수 있습니다

감사

+0

http://php.net/manual/en/function.fsockopen.php 을 주어 전에 여러번 바와 같이 (http://stackoverflow.com/search? q = allow_url_fopen + alternative), 대안은 cURL을 사용할 수 있는지 확인하는 것입니다. 그리고 그렇지 않다면 http://stackoverflow.com/questions/3880628/how-to-scrape-websites-when-curl-and-allow-url-fopen-is-disabled에 나와있는 해결책을 시도해야합니다. – Gordon

+0

cURL 액세스 권한이 있습니까? – Crontab

+0

[PHP, allow_url_fopen이 비활성화되어 cURL을 사용하는 데 도움이 필요합니다] (http://stackoverflow.com/questions/9071895/php-need-help-using-curl-as-allow-url-fopen-is-disabled)) – Gordon

답변

0

:

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
if(empty($result)){die('No image');} 
+1

curl 결과에 http 헤더가 포함될 수 있으므로 올바른 방법이 아닙니다. http 헤더 –

+0

의 상태 코드를 더 잘 검사하십시오. 'curl_exec'가 헤더를 반환하는지 확인하지 마십시오. 내가 헤더를 알기 때문에'curl_setopt ($ ch, CURLOPT_HTTPHEADER, $ headers);를 추가해야한다. ' – Narek

0

당신은 HTTP 방법을 통해 파일을 얻기 위해 CURL 라이브러리를 사용할 수 있습니다. 이 파일을 사용하면 파일이 존재하면 상태 코드가 성공하고 그렇지 않으면 상태 코드가 반환됩니다. 또 다른 옵션은 fsockopen과 같은 소켓 라이브러리 함수를 사용하여 해당 서버에 연결하고 FTP를 통해 파일에 액세스 할 수있는 경우 사용하는 것입니다. 예 내지

이동 http://php.net/manual/en/function.fsockopen.php

관련 문제