PHP入門 | テキストファイルの利用 | インターネット上のファイルも読める?
ここまでPHPのファイルアクセス関数について簡単に整理してきたが、最後に重要な秘密を紹介しよう。
実は、PHPのファイル関連関数はローカルボリュームに保存されているファイルだけでなく、インターネット上にあるファイルにも同じようにアクセスできる。
ただし、ファイルを書き換えることはできない。基本的にはデータを読み込めるだけである。それでも「Webサイトのデータを自由に読み込める」と考えれば、かなり強力だと思わないだろうか。
使い方は簡単である。それぞれの関数でファイルを指定する引数に、ファイル名やファイルパスの代わりにURLを書けばよい。例えば次のようにする。
$lines = file("http://www.google.com/");
このようにすると、GoogleのトップページのHTMLコードをすべて取得できる。
以下に簡単な使用例を示す。
<?php
if ($_POST != null){
$url = $_POST['text1'];
$lines = file($url);
$result = implode($lines);
}
?>
<!DOCTYPE html>
<html lang="ko">
<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>
入力フィールドにURLを書いて送信すると、そのページの内容をダウンロードして下に書き出す。実際に試してみよう。別のサイトのデータを簡単に取得できることが分かる。
ただし、ネットワーク上のファイルを読み込む場合は、読み込みに失敗したり非常に時間がかかったりすることも多い。そのような場合への対応も考えておかなければならない。それでも、これほど簡単にWebデータを取得できるなら、さまざまな用途に応用できるはずだ。