Heim >Backend-Entwicklung >PHP-Tutorial >PHP抓取网页内容的技巧分享_PHP教程
如何才能正确的实现可为什么PHP抓取网页内容后没反应呢?连测试的文字都没有,要是我把echo "测试一下";放到第一行就可以输出,我估计是curl_init()函数还没有运行!
你看看PHP的phpinfo()中有没有CURL扩展支持!
把php_curl.dll拷到c:windows和c:windowssystem32里面 重启apache之后再试试看
不是php_curl.dll这个文件,是把php目录中的libeay32.dll,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> ?php /* </span></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 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 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></span> </li> <li> <span class="tag">?></span><span> </span> </li> </ol>
以下PHP抓取网页内容的范例是通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> ?php </span></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 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>
通过以上对PHP抓取网页内容的学习,大家可以自行实际操作一遍,加深对它的理解。