PHP中的fopen如何工作?

时间:2013-10-03 05:13:02

标签: php web-scraping fopen

我正在尝试这本书中的简单PHP代码。

<?php
$handle=fopen('http://www.abc.com/','r');
//echo $handle;
$response=stream_get_contents($handle);
//echo $response;
$meta=stream_get_meta_data($handle);
//print_r($meta['wrapper_data']);
?>

当我们调用fopen()时,它返回文件指针资源(根据PHP手册)。当我回显$ handle的值时,这是一个简单的数字。我不明白后台发生了什么。是不是像fopen()下载了html并存储在某些地方,并给我们一个指针?

当我回复$ response时,它就是整个网页。这意味着$ response包含完整的网页HTML。现在如何从stream_get_contents($ handle)获取整个HTML。但是$ handle只是一个数字,如果我们回应它。我无法理解fopen和文件指针资源的机制。有谁能解释我?

1 个答案:

答案 0 :(得分:0)

这个概念与许多编程语言(特别是C)类似。

当一个文件被打开时,我们需要一个标识符来处理(读/写/删除)这个文件,这个文件称为文件指针资源。

  

当进程使用fopen函数打开文件时,文件   handle(文件指针资源)与之关联,直到   进程终止或使用fclose函数关闭句柄。   文件句柄用于在许多函数调用中标识文件。

更多:File Handles in Windows