当前位置:编程问答 > php >

php采集原理和抓取远程内容最简单的教程

问题:有人告诉我如何用php采集和抓取远程页面吗,我希望知道最简单的方便的方法,刚学习php太复杂的不适合我啊
答案:1.拿下www.zzzyk.com的首页 

    <?php
    function openfile($url)

    {if(file($url)){
            $str = file($url);
            $count = count($str);
            $file="";
                for ($i=0;$i<$count;$i++){
                    $file .= $str[$i];
            }
            return $file;
     } else {

        die("文件打开失败!");

        }
    }
    $getstr=openfile("http://www.zzzyk.com");
    echo $getstr;

    ?>

2.用file_get_contents()函数拿下www.zzzyk.com的首页

<?php

    $getstr=file_get_contents("http://www.zzzyk.com");

    echo $getstr;

?>

3.用Microsoft.XMLHTTP组件方式拿下www.zzzyk.com的首页

<?php

$url="http://www.zzzyk.com";

$xmlhttp = new COM("Microsoft.XMLHTTP") or die("无法创建Microsoft.XMLHTTP

组件!");

$xmlhttp->open("GET",$url,False, "", "");
$xmlhttp->setRequestHeader("content-Type","text/xml");

$xmlhttp->send();
header('Content-Type:text/html;charset=utf-8');
$body=$xmlhttp->responseText;

echo $body;
?>

其他:在默认情况下,XmlHttp 都是使用Utf-8 字符集,而我们使用的多是GB2312 字符集,这就要求我们进行GB2312到Utf-8 的转码。

  PHP 提供了一个可选的专码模块,可以实现多种字符集之间的相互转化。加载这个专码模块的方法如下:

  1. 打开PHP 配置文件php.ini,将 ;extension=php_mbstring.dll(linux 是php_mbstring.so)前的分号去掉。重新启动Apache 以后,这个模块就可以使用了。如果有错误出现,请检查扩展目录的路径设置是否正确。
  2. 加载这个模块以后,我们就可以使用mb_convert_encoding 函数来转码了:

    <?    
    $utf8_string
    = mb_convert_encoding($gb_string, 'UTF-8', 'GB2312'
    );    
    ?>


    将转码后的字符输出就可以看见正确显示的中文了

上一个:php 分页函数肿么写? 或者给我一个现成滴也行,在线儿等ing
下一个:PHP正则表达式求解

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,