Heim  >  Artikel  >  Backend-Entwicklung  >  PHP verwendet CURL, um auf die Remote-URL zuzugreifen, und es tritt ein Fehler auf: Header-Informationen können nicht geändert werden ...

PHP verwendet CURL, um auf die Remote-URL zuzugreifen, und es tritt ein Fehler auf: Header-Informationen können nicht geändert werden ...

WBOY
WBOYOriginal
2016-08-23 09:17:481520Durchsuche

Curl-Code:

<code>        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);  //请求URL
        curl_setopt($ch, CURLOPT_HEADER, 0);  //禁止输出头部信息
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //获取信息以文件流的格式返回
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        if( !is_null($postData) ){
            curl_setopt($ch, CURLOPT_POST, 1);  //POST提交
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        }
        $return = curl_exec($ch);
        curl_close($ch);
        return $return;</code>

Es ist ein Fehler aufgetreten:

<code>Cannot modify header information - headers already sent by...</code>

Beim Zugriff auf die URL direkt im Browser sind keine Fehler aufgetreten.

Ich habe auch im Internet nach Lösungen für die oben genannten Probleme gesucht. Die meisten davon beinhalten das Ändern von PHP-Dateien oder das Ändern von PHP-Konfigurationen. . . Aber meine Idee ist, CURL zu verwenden, um den gleichen Effekt wie beim Browserzugriff zu erzielen? Wie erreicht man das? Da beim Durchsuchen auf diese URL zugegriffen wird, wird kein Fehler generiert.

Antwortinhalt:

Curl-Code:

<code>        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);  //请求URL
        curl_setopt($ch, CURLOPT_HEADER, 0);  //禁止输出头部信息
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //获取信息以文件流的格式返回
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        if( !is_null($postData) ){
            curl_setopt($ch, CURLOPT_POST, 1);  //POST提交
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        }
        $return = curl_exec($ch);
        curl_close($ch);
        return $return;</code>

Es ist ein Fehler aufgetreten:

<code>Cannot modify header information - headers already sent by...</code>

Beim Zugriff auf die URL direkt im Browser sind keine Fehler aufgetreten.

Ich habe auch im Internet nach Lösungen für die oben genannten Probleme gesucht. Die meisten davon beinhalten das Ändern von PHP-Dateien oder das Ändern von PHP-Konfigurationen. . . Aber meine Idee ist, CURL zu verwenden, um den gleichen Effekt wie beim Browserzugriff zu erzielen? Wie erreicht man das? Da beim Durchsuchen auf diese URL zugegriffen wird, wird kein Fehler generiert.

Sie benötigen eine Bibliothek, die Curl kapselt

Ich habe Stackoverflow überprüft. Vielleicht hat Ihre Dateikodierung einen BOM-Header.
Versuchen Sie, die Kodierung auf UTF-8 ohne BOM-Format zu ändern.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn