• 技术文章 >php教程 >php手册

    php 打开读取网页方法

    2016-06-13 11:25:57原创734
    fopen实现代码:

    fopen() 函数打开文件或者 URL。

    如果打开失败,本函数返回 FALSE。


    代码如下:

    $handle = fopen ("http://www.example.com/", "rb");
    $contents = "";
    while (!feof($handle)) {
    $contents .= fread($handle, 8192);
    }
    fclose($handle);
    ?>

    代码如下:
    // 对 PHP 5 及更高版本
    $handle = fopen("http://www.example.com/", "rb");
    $contents = stream_get_contents($handle);
    fclose($handle);
    ?>

    参数 描述
    filename 必需。规定要打开的文件或 URL。
    mode 必需。规定要求到该文件/流的访问类型。可能的值见下表。
    include_path 可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
    context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

    mode 参数的可能的值

    mode 说明
    "r" 只读方式打开,将文件指针指向文件头。
    "r+" 读写方式打开,将文件指针指向文件头。
    "w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    "w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    "a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    "a+" 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    "x"

    创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

    这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

    此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

    "x+"

    创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

    这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

    此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

    2.curl实现代码:
    代码如下:

    function _url($Date){
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, "$Date");
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $contents = curl_exec($ch);
    curl_close($ch);
    return $contents;
    }
    $pageURL="http://www.baidu.com";
    $contents=_url($pageURL);
    ?>

    curl_close — 关闭一个curl会话
    curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
    curl_errno — 返回一个包含当前会话错误信息的数字编号
    curl_error — 返回一个包含当前会话错误信息的字符串
    curl_exec — 执行一个curl会话
    curl_getinfo — 获取一个curl连接资源句柄的信息
    curl_init — 初始化一个curl会话
    curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
    curl_multi_close — 关闭一个批处理句柄资源
    curl_multi_exec — 解析一个curl批处理句柄
    curl_multi_getcontent — 返回获取的输出的文本流
    curl_multi_info_read — 获取当前解析的curl的相关传输信息
    curl_multi_init — 初始化一个curl批处理句柄资源
    curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
    curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
    curl_setopt_array — 以数组的形式为一个curl设置会话参数
    curl_setopt — 为一个curl设置会话参数
    curl_version — 获取curl相关的版本信息
    curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
    curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
    curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

    编码转换函数
    代码如下:

    $html = file_get_contents(http://mb.php100.com);
    $html = iconv( "Big5", "UTF-8//IGNORE" , $html); //转化编码方式为UTF8
    print $html;
    $htm = file("http://s.jb51.net");
    $h = "";
    foreach($htm as $value)
    {
    $h.= iconv( "GB2312", "utf-8//IGNORE" , $value);
    }
    print_r($h);

    file_get_contents(path,include_path,context,start,max_length)

    参数 描述
    path 必需。规定要读取的文件。
    include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
    context

    可选。规定文件句柄的环境。

    context 是一套可以修改流的行为的选项。若使用 null,则忽略。

    start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
    max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

    另一种打开网页的方法
    代码如下:

    $opts = array(
    'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: enrn" .
    "Cookie: foo=barrn"
    )
    );
    $context = stream_context_create($opts);
    /* Sends an http request to www.zhutiai.com

    with additional headers shown above */
    $fp = fopen('http://www.baidu.com', 'r', false, $context);
    fpassthru($fp);
    fclose($fp);
    ?>


    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:php shell_exec() 命令用法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• mysql 数据备份类代码• 我的论坛源代码(五)• php根据用户语言跳转相应网页• Xgcalendar 新增Php demo• PHP 采集程序原理分析篇
    1/1

    PHP中文网