Heim > Backend-Entwicklung > PHP-Tutorial > PHP Curl, fsockopen-Funktion

PHP Curl, fsockopen-Funktion

WBOY
Freigeben: 2016-07-29 09:15:56
Original
1101 Leute haben es durchsucht

Beispiele für die Verwendung von curl und fsockopen finden Sie direkt unten. Sie können sie als Beispiele verwenden oder sie direkt als gekapselte Funktionen verwenden.

Verwendungscode der Curl-Funktion

<code><span>public</span><span><span>function</span><span>xcurl</span><span>(<span>$url</span>,<span>$ref</span>=null,<span>$post</span>=array<span>()</span>,<span>$ua</span>=<span>"Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre"</span>,<span>$print</span>=false)</span> {</span><span>$ch</span> = curl_init();
     curl_setopt(<span>$ch</span>, CURLOPT_AUTOREFERER, <span>true</span>);
     <span>if</span>(!<span>empty</span>(<span>$ref</span>)) {
          curl_setopt(<span>$ch</span>, CURLOPT_REFERER, <span>$ref</span>);
     }
     curl_setopt(<span>$ch</span>, CURLOPT_URL, <span>$url</span>);
     curl_setopt(<span>$ch</span>, CURLOPT_HEADER, <span>0</span>);
     curl_setopt(<span>$ch</span>, CURLOPT_FOLLOWLOCATION, <span>1</span>);
     curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>1</span>);
     <span>if</span>(!<span>empty</span>(<span>$ua</span>)) {
          curl_setopt(<span>$ch</span>, CURLOPT_USERAGENT, <span>$ua</span>);
     }
     <span>if</span>(count(<span>$post</span>) > <span>0</span>){
          curl_setopt(<span>$ch</span>, CURLOPT_POST, <span>1</span>);
          curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>$post</span>);
     }
     <span>$output</span> = curl_exec(<span>$ch</span>);
     curl_close(<span>$ch</span>);
     <span>if</span>(<span>$print</span>) {
          <span>print</span>(<span>$output</span>);
     } <span>else</span> {
          <span>return</span><span>$output</span>;
     }
}

</code>
Nach dem Login kopieren

Verwendungscode der fsockopen-Funktion:

<code><span>public</span><span><span>function</span><span>curl_request_async</span><span>(<span>$url</span>, <span>$params</span>, <span>$type</span>=<span>'GET'</span>)</span>
    {</span><span>// set referer</span><span>$referer</span> = <span>$_SERVER</span>[<span>'HTTP_HOST'</span>];
        <span>foreach</span> (<span>$params</span><span>as</span><span>$key</span> => &<span>$val</span>) {
            <span>if</span> (is_array(<span>$val</span>)) <span>$val</span> = implode(<span>','</span>, <span>$val</span>);
            <span>$post_params</span>[] = <span>$key</span>.<span>'='</span>.urlencode(<span>$val</span>);
        }
        <span>$post_string</span> = implode(<span>'&'</span>, <span>$post_params</span>);

        <span>$parts</span>=parse_url(<span>$url</span>);

        @<span>$fp</span> = fsockopen(<span>$parts</span>[<span>'host'</span>], <span>isset</span>(<span>$parts</span>[<span>'port'</span>])?<span>$parts</span>[<span>'port'</span>]:<span>80</span>, <span>$errno</span>, <span>$errstr</span>, <span>2</span>);

        <span>if</span>(!<span>$fp</span>){
            <span>echo</span><span>"$errstr ($errno)<br />\n"</span>;
        }<span>else</span>{
            <span>if</span>(<span>'GET'</span> == <span>$type</span>) <span>$parts</span>[<span>'path'</span>] .= <span>'?'</span>.<span>$post_string</span>;

            <span>$out</span> = <span>"$type "</span>.<span>$parts</span>[<span>'path'</span>].<span>" HTTP/1.1\r\n"</span>;
            <span>$out</span>.= <span>"Host: "</span>.<span>$parts</span>[<span>'host'</span>].<span>"\r\n"</span>;
            <span>$out</span>.= <span>"Referer: "</span>.<span>$referer</span>.<span>"\r\n"</span>;
            <span>$out</span>.= <span>"Content-Type: application/x-www-form-urlencoded\r\n"</span>;
            <span>$out</span>.= <span>"Connection: Close\r\n\r\n"</span>;
            <span>// Data goes in the request body for a POST request</span><span>if</span> (<span>'POST'</span> == <span>$type</span> && <span>isset</span>(<span>$post_string</span>)) <span>$out</span>.= <span>$post_string</span>;
            fwrite(<span>$fp</span>, <span>$out</span>);

            fclose(<span>$fp</span>);
        }
    }</code>
Nach dem Login kopieren

Nur ​​von den oben genannten Funktionen ist der wichtigste Unterschied in der Verwendung:
Curl fordert eine bestimmte URL an und muss auf die Rückgabe des Ergebnisses warten, während fsockopen keine Rückgabe benötigt und den Code nach dem Senden der Anfrage weiterhin ausführt. Sofern Sie nicht fsockopen verwenden, müssen Sie die nach der Anfrage zurückgegebenen Ergebnisse ausdrucken.

Urheberrechtserklärung: Bitte geben Sie die Quelle für den Nachdruck an: http://blog.csdn.net/m0sh1

Das Obige hat die PHP-Curl- und Fsockopen-Funktionen einschließlich der relevanten Inhalte vorgestellt. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
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