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 をエコーすると、そのまま Web ページ全体でした。これは、$response に Web ページの完全な HTML が含まれていることを意味します。stream_get_contents($handle) から HTML 全体を取得する方法。しかし $handle は、エコーする場合は単なる数字です。fopenとファイルポインタリソースの仕組みがわかりません。誰か私を説明できますか?

4

1 に答える 1

0

この概念は、多くのプログラミング言語 (特に C) と似ています。

ファイルが開かれているとき、後でこのファイルを操作 (読み取り/書き込み/削除) するための識別子が必要です。これは、ファイル ポインター リソースとして呼び出されます。

プロセスが fopen 関数を使用してファイルを開くと、プロセスが終了するか、fclose 関数を使用してハンドルが閉じられるまで、ファイル ハンドル (ファイル ポインター リソース) がファイルに関連付けられます。ファイル ハンドルは、多くの関数呼び出しでファイルを識別するために使用されます。

詳細: Windows のファイル ハンドル

于 2013-10-03T05:35:33.257 に答える