ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用した Web コンテンツのクロールに関するヒントの共有_PHP チュートリアル

PHP を使用した Web コンテンツのクロールに関するヒントの共有_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:32:01730ブラウズ

正しく実装する方法しかし、Web コンテンツをクロールした後に PHP が応答しないのはなぜでしょうか?テストテキストさえありません。最初の行に echo "test;" を入力すると、curl_init() 関数がまだ実行されていないと思われます。

PHP の phpinfo() に CURL 拡張機能のサポートがあるかどうかを確認してください!

php_curl.dll を c:windows および c:windowssystem32 にコピーし、Apache を再起動して再試行してください

それはファイル php_curl.dll ではなく、libeay32.dll をコピーしますphp ディレクトリの ssleay32.dll を c:windowssystem32 にコピーし、apache を再起動します

サーバーのセキュリティのため、allow_url_fopen はオフになっています。

サーバーallow_url_fopen = Offの場合、file_get_contentsは使用できません。ONに設定されている場合のみ使用できます。

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> ?php /*  </span></span></li><li><span>$</span><span class="attribute">getstr</span><span>=</span><span class="attribute-value">file_get_contents</span><span>("http://www.<br />163.com/weatherxml/54511.xml");  </span></li><li class="alt"><span>$</span><span class="attribute">qx</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">qx</span><span>="));  </span></li><li><span>$</span><span class="attribute">wd</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">wd</span><span>="));  </span></li><li class="alt"><span>$</span><span class="attribute">qximg</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($getstr,"</span><span class="attribute">qximg</span><span>="));  </span></li><li><span>$</span><span class="attribute">qximg_</span><span>=</span><span class="attribute-value">explode</span><span>(",",$qximg[1]);  </span></li><li class="alt"><span>echo "北京 ".$qx[1]."";  </span></li><li><span>echo $wd[1];*/  </span></li><li class="alt"><span>//echo "</span><span class="tag"><</span><span> </span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">'http://news.<br />163.com/img/logo/".$qximg_[0]."'</span><span class="tag">><br></span><span class="tag"><</span><span> </span><span class="tag-name">img</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">'http://news.163.com<br />/img/logo/".$qximg_[1]."'</span><span class="tag">></span><span>";  </span></span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

次の PHP クローリング Web コンテンツの例は、curl_init 関数を通じて 163 の天気予報を取得することです

php.ini ( ;extension=php_curl.dll ) 内の以前の (;) を削除して保存します

php_curl を置きます.dll 、 libeay32.dll 、 ssleay32.dll を c:windowssystem32 にコピーし、IIS を再起動します Apache がインストールされていません

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><</span><span> ?php  </span></span></li><li><span>//初始化curl  </span></li><li class="alt"><span>$</span><span class="attribute">ch</span><span> = </span><span class="attribute-value">curl_init</span><span>() or die (curl_error());  </span></li><li><span>//设置URL参数  </span></li><li class="alt"><span>curl_setopt($ch,CURLOPT_URL,"http:<br />//www.163.com/weatherxml/54511.xml");  </span></li><li><span>//要求CURL返回数据  </span></li><li class="alt"><span>curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  </span></li><li><span>//执行请求  </span></li><li class="alt"><span>$</span><span class="attribute">result</span><span> = </span><span class="attribute-value">curl_exec</span><span>($ch) or die (curl_error());  </span></li><li><span>//取得返回的结果,并显示  </span></li><li class="alt"><span>//echo $result;  </span></li><li><span>// echo curl_error($ch);  </span></li><li class="alt"><span>$</span><span class="attribute">qx</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">qx</span><span>="));  </span></li><li><span>$</span><span class="attribute">wd</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">wd</span><span>="));  </span></li><li class="alt"><span>$</span><span class="attribute">qximg</span><span>=</span><span class="attribute-value">explode</span><span>(""",strstr($result,"</span><span class="attribute">qximg</span><span>="));  </span></li><li><span>$</span><span class="attribute">qximg_</span><span>=</span><span class="attribute-value">explode</span><span>(",",$qximg[1]);  </span></li><li class="alt"><span>echo "北京 ".$qx[1]."</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>";  </span></span></li>
<li><span>echo $wd[1];  </span></li>
<li class="alt"><span>//关闭CURL  </span></li>
<li><span>curl_close($ch);  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

Web コンテンツをクロールする PHP に関する上記の学習を通じて、自分で実践して理解を深められます。それはわかります。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446179.html技術記事これを正しく実装するにはどうすればよいでしょうか?しかし、Web コンテンツをクロールした後に PHP が応答しないのはなぜでしょうか?テストテキストはありません。エコーテストを入れれば、最初の行に出力できると思います...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。