Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的fopen是如何工作的?_Php_Web Scraping_Fopen - Fatal编程技术网

PHP中的fopen是如何工作的?

PHP中的fopen是如何工作的?,php,web-scraping,fopen,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代码

<?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和文件指针资源的机制。谁能给我解释一下吗

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

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

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

更多: