我有一個cronjob從不同的URL下載不同的文件並修改數據。古怪的事情是,一切運作良好,現在我想添加兩個網址,但與這些網址我有一些問題...無法打開流 - DOM和File_Put_Contents
但我只是沒有爲什麼...所有網址(8)使用相同的功能。但只有2個新的URL會引發這個錯誤。我不允許在此處提供網址,但我可以說,我可以在Chrome瀏覽器中下載這兩個網址。
我打開一個URL與DOM:
function fetchXmlDocument($url, $output, $dom = null){
if (!$dom instanceof DOMDocument) {
$dom = new DOMDocument('1.0', 'utf-8');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
}
$dom->load($url);
$dom->save($output);
return $dom;
}
在這裏,我得到這個錯誤:
DOMDocument::load(http://myurl.de): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
DOMDocument::load(): I/O warning : failed to load external entity ...
另一個URL加載的fopen:
function fetchCsvDocument($url, $output){
return file_put_contents($output, fopen($url, 'r'));
}
在這裏,我得到此錯誤:
fopen(http://myurl.de): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable
有人知道我該如何解決這個錯誤? 我只是不明白爲什麼我可以用我的瀏覽器下載URL,但PHP告訴我403甚至503.
我用這些函數下載的其他文件和修改不會引發這個錯誤...?
問候和謝謝你!
我建議使用['libxml_set_streams_context'](http://php.net/manual/ en/function.libxml-set-streams-context.php)來設置用戶代理。如果不起作用,請嘗試使用提供更多選項並返回更多信息的'cURL'加載文件。有關[http狀態代碼]的更多信息(https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) –