Heim >Backend-Entwicklung >PHP-Tutorial >探讨:php抓取页面的几种方法

探讨:php抓取页面的几种方法

WBOY
WBOYOriginal
2016-07-25 08:58:341068Durchsuche
  1. $url='http://t.qq.com';
  2. $lines_array=file($url);
  3. $lines_string=implode('',$lines_array);
  4. echo htmlspecialchars($lines_string);
复制代码

2. file_get_contents()函数 使用file_get_contents和fopen必须空间开启allow_url_fopen。 方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。

  1. $url='http://t.qq.com';
  2. $lines_string=file_get_contents($url);
  3. echo htmlspecialchars($lines_string);
复制代码

3. fopen()->fread()->fclose()模式

  1. $url='http://t.qq.com';
  2. $handle=fopen($url,"rb");
  3. $lines_string="";
  4. do{
  5. $data=fread($handle,1024);
  6. if(strlen($data)==0) {
  7. break;
  8. }
  9. $lines_string.=$data;
  10. }while(true);
  11. fclose($handle);
  12. echo htmlspecialchars($lines_string);
复制代码

4. curl方式 使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。

  1. $url='http://t.qq.com';
  2. $ch=curl_init();
  3. $timeout=5;
  4. curl_setopt($ch, CURLOPT_URL, $url);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  7. $lines_string=curl_exec($ch);
  8. curl_close($ch);
  9. echo htmlspecialchars($lines_string);
复制代码

5. fsockopen()函数 socket模式 socket模式能否正确执行,也跟服务器的设置有关系,具体可以通过phpinfo查看服务器开启了哪些通信协议,比如我的本地php socket没开启http,只能使用udp测试一下了。

  1. $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
  2. if (!$fp) {
  3. echo "ERROR: $errno - $errstr
    \n"
  4. } else {
  5. fwrite($fp, "\n")
  6. echo fread($fp, 26)
  7. fclose($fp)
  8. }
复制代码


Stellungnahme:
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