首页 > php框架 > php 打开读取网页方法

php 打开读取网页方法


php教程实现代码:

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

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

代码如下:

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

代码如下:

<?php
// 对 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实现代码:
 代码如下:

<?php
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()函数返回的句柄。

编码转换函数

<?php
$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 新加的。


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

<?php
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Accept-language: enrn" . "Cookie: foo=barrn"
    )
);
$context = stream_context_create($opts);
/* Sends an http request to
 with additional headers shown above */
$fp = fopen('http://www.baidu.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>


本文地址:http://www.phprm.com/frame/php1005214.html

转载随意,但请附上文章地址:-)

标签:none

发表留言