【问题标题】:How the fopen in PHP works?PHP 中的 fopen 是如何工作的?
【发布时间】:2013-10-03 05:13:02
【问题描述】:

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

【问题讨论】:

    标签: php web-scraping fopen


    【解决方案1】:

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

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

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

    更多:File Handles in Windows

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-05
      • 2018-08-05
      • 1970-01-01
      • 2015-04-16
      • 2013-08-24
      • 2011-05-12
      • 1970-01-01
      • 2012-08-18
      相关资源
      最近更新 更多