Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2016-08-23 09:17:48
Original
1548 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

Es ist ein Fehler aufgetreten:

<code>Cannot modify header information - headers already sent by...</code>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Es ist ein Fehler aufgetreten:

<code>Cannot modify header information - headers already sent by...</code>
Nach dem Login kopieren
Nach dem Login kopieren

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.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage