0

我正在从一本书中尝试这个简单的 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 和文件指针资源的机制。谁能解释我?

4

1 回答 1

0

这个概念与许多编程语言(尤其是 C)相似。

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

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

更多:Windows 中的文件句柄

于 2013-10-03T05:35:33.257 回答