libro
www.tuyano.com
初心者のためのPHPプログラミング入門

テキストファイルの利用 (7/7)

作成:2010-12-06 10:09
更新:2010-12-06 10:09

■実は、インターネット上のファイルも読める?

ここまで、PHPのファイルアクセス関数についてざっと整理してきましたが、最後に重大な秘密(?)を教えましょう。

実は、PHPのファイル関係の関数は、ローカルボリュームに保存されているファイルだけしか使えないわけではないのです。インターネット上にあるファイルも、全く同じようにアクセス出来るのです!

といっても、ファイルの書き換えなどは行えません。基本的に、データを読むだけです。が、それでも「世界中にあるWebサイトのデータを自由に読める」となったら、これはすごいと思いませんか?

使い方は簡単。それぞれの関数で、ファイルの指定を行う引数に、ファイル名やファイルのパスの代わりにURLを書くだけです。例えば、
$lines = file("http://www.google.co.jp/");
こんな具合にすれば、GoogleのトップページのHTMLコードがすべて取り出せます。

実際の簡単な利用例を下にあげておきましょう。入力フィールドにURLを書いて送信すると、そのページの内容をダウンロードして下に書き出します。実際にやってみてください。笑えるほど簡単に他サイトのデータが取り出せてしまうことが分かります。

まぁ、ネットワーク上のファイルを読み込む場合、読み込みに失敗したり、非常に時間がかかったりすることも多いので、そうした場合の対応なども考えておかないといけません。が、こんなに簡単にWebのデータが取り出せるとなると、いろいろなことに応用できそうですね?

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
	if ($_POST != null){
		$url = $_POST['text1'];
		$lines = file($url);
		$result = implode($lines);
	}
?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
		xml:lang="ja" lang="ja"> 
	<head> 
		<meta http-equiv="Content-Type"
			content="text/html; charset=UTF-8" /> 
		<title>sample page</title>
	</head>
	<body>
		<h1>Hello PHP!</h1>
		<form method="post" action="./index.php">
			<input type="text" name="text1" size="40"
				value="<?php echo htmlspecialchars($url); ?>"><br>
			<input type="submit">
		</form>
		<hr>
		<?php echo htmlspecialchars($result); ?>
	</body>
</html>

※関連コンテンツ

「初心者のためのPHPプログラミング入門」に戻る