カールの使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-28 08:25:431382ブラウズ

「未定義関数curl_init()の呼び出し」の問題は、PHPのcurl開発を初めて使用する場合に発生することがあります。これは、PHPがcurl実行環境を設定していないことを意味します。
1. php.iniのextension=php_curl.dllの前のセミコロンが削除されているか確認します。削除したら、Apache サーバーを再起動します。
2. 同じ問題が解決しない場合は、php ディレクトリの libeay32.dll ファイルと ssleay32.dll ファイル、および ext ディレクトリの php_curl.dll ファイルを C:WINDOWSsystem32 ディレクトリにコピーする必要があります。上記のファイルが存在しない場合は、ダウンロードして対応するディレクトリにコピーし、Apache サーバーを再起動してください。 (追記:そのような問題は一度もなかったということで、解決策もBaiduで見つかりました)


環境構築が成功した後、curl_execメソッドを呼び出したときに戻り値が無いという問題が発生する可能性があります。まず、https にアクセスしているかどうかを確認します。curl が URL にアクセスするときは、デフォルトで SSL 認証が実行されるため、次のコードを追加する必要があります

<code>curl_setopt(<span>$ch</span>, <span>CURLOPT_SSL_VERIFYPEER</span>, <span>false</span>); <span>//</span>不验证证书
curl_setopt(<span>$ch</span>, <span>CURLOPT_SSL_VERIFYHOST</span>, <span>false</span>); <span>//</span>不验证证书</code>

以下に、php が post リクエストをシミュレートするためのコードを添付します

<code><span><span>function</span><span>request_post</span><span>(<span>$url</span> = <span>''</span>, <span>$post_data</span> = array<span>()</span>)</span> {</span><span>if</span> (<span>empty</span>(<span>$url</span>) || <span>empty</span>(<span>$post_data</span>)) {
            <span>return</span><span>false</span>;
        }

        <span>$o</span> = <span>""</span>;
        <span>foreach</span> ( <span>$post_data</span><span>as</span><span>$k</span> => <span>$v</span> ) 
        { 
            <span>$o</span>.= <span>"$k="</span> . urlencode( <span>$v</span> ). <span>"&"</span> ;
        }
        <span>$post_data</span> = substr(<span>$o</span>,<span>0</span>,-<span>1</span>);

        <span>$postUrl</span> = <span>$url</span>;
        <span>$curlPost</span> = <span>$post_data</span>;
        <span>$ch</span> = curl_init();<span>//初始化curl</span>
        curl_setopt(<span>$ch</span>, CURLOPT_URL,<span>$postUrl</span>);<span>//抓取指定网页</span>
        curl_setopt(<span>$ch</span>, CURLOPT_POST, <span>1</span>);<span>//post提交方式</span>
        curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>$curlPost</span>);
        curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYPEER, <span>false</span>); <span>//不验证证书</span>
        curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYHOST, <span>false</span>); <span>//不验证证书</span><span>$data</span>=curl_exec(<span>$ch</span>);
        curl_close(<span>$ch</span>);
        <span>return</span><span>$data</span>;
    }</code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

上記では、curl の使い方をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。