2011-01-05 3 views
8

이 문제는 과거에는 Google과 여기에서 모두 논의되었지만 아직 해결 방법을 찾지 못한 것 같습니다. 하면 fopen (http://www.google.ca) :PHP5에서 스트림을 열지 못했습니다. fopen을 사용하면 HTTP 요청에 오류가 발생했습니다.

아주 간단한 fopen을 나에게

PHP 경고를 제공 스트림 열지 못했습니다 :! HTTP 요청에 실패했습니다 "

을 내가 가져 오는 오전 URL이 더 중요성이 없습니다. 왜냐하면 내가 http://www.google.com을 가져 오더라도 똑같은 스크립트가 다른 서버에서 작동하기 때문입니다. 우분투 10.04와 PHP 5.3.2가 실패했습니다. 이것은 내 스크립트에서 문제가되지 않으며 내 서버와 다를 수도 있고 그렇지 않을 수도 있습니다. PHP의 버그.

php.ini에서 user_agent를 사용해 보았지만 성공하지 못했습니다. 내 allow_url_fopen이 On으로 설정되었습니다.

아이디어가 있으면 언제든지 알려주세요. php.ini 파일의 설정은 외부 URL의를 열 수는 fopen 수 있도록 설정되어

+0

명령 행에서'wget http : // www.google.ca'을 할 수 있습니까? 'fopen()'은 더 이상의 오류 정보를 제공하지 않습니까? –

+0

fopen ('173.194.43.104') 할 수 있습니까? (그 google.ca의 IP를) 어쩌면 DSN 해당 서버에서 PHP로 액세스 할 수 있습니까? –

+0

@Pekka 예,이 방법으로 아무런 문제도 가져올 수 없습니다. – mickey

답변

9

요즘 보안상의 이유로. cURL 라이브러리를 사용할 수 있다면 해당 라이브러리를 사용해 보는 것이 좋습니다.

PHP: cURL

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.google.ca/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$file = curl_exec($ch); 
curl_close($ch); 

echo $file; 
+0

위의 주석 참조 – mickey

+0

'phpinfo();'가있는 테스트 PHP 파일을 만드십시오. '컬 (curl)'을 검색하여 사용하도록 설정했는지 확인하십시오. –

+0

알았어, 내가 편집 한 글이 그 버전에서 작동한다는 것을 알았어. 스크립트에서해볼 게. – mickey

1

난 전혀 확인이 문제인지 아닌지에 대한 모르겠지만, 과거에 나는 종종 때문에 PHP로는 fopen과 URL을 여는 문제를 했어 알고있다. ini의 allow_url_fopen 또는 기타 알 수없는 보안 설정

PHP로 cURL을 시도해 볼 수 있습니다.이 스크립트는 저에게 적합합니다. 검색을 통해 쉽게 찾을 수 있습니다.

+0

나는 php-curl을 시도했으며 똑같은 오류가 발생합니다. – mickey

+0

정확히 같은 것? 이상한. curl_error()는 무엇을 제공합니까? http://uk.php.net/manual/en/function.curl-error.php – Adam

0

phpinfo 출력을 확인하십시오. 아래에 http이 있습니까?

+0

https, ftps, compress.zlib, compress.bzip2, php, 파일, glob, 데이터, http, ftp, phar, zip – mickey

관련 문제