第 39章リモートファイルの使用

php.iniallow_url_fopenを有効にした場合、 ファイル名をパラメータとする関数の多くで HTTP および FTP のURL を使用することができます。加えて、include(), include_once(), require(), require_once() 命令でURLを使用することができます。 PHPがサポートしているプロトコルに関する詳細は 付録Oを参照してください。

注意: PHP 4.0.3以前のバージョンにおいては、URLラッパーを使用するために、 configureオプション --enable-url-fopen-wrapper を使用してPHPをconfigureを行なう必要があります。

注意: PHP 4.3未満のWindows版PHPは次の関数については リモートファイルアクセスをサポートしてません: include(), include_once(), require(), require_once(), そして参照LXV, イメージ関数(image)拡張によるimagecreatefromXXX関数。

例えば、リモートWebサーバーにファイルをオープンし、データを出力、デー タベースクエリーに使用するか、単にWebサイトのスタイルに合わせて出力 を行うことが可能です。

例 39-1. リモートページのタイトルを得る

<?php
$file
= fopen("http://www.php.net/", "r");
if (!
$file) {
  echo
"<p>Unable to open remote file.\n";
  exit;
}
while (!
feof($file)) {
  
$line = fgets($file, 1024);
  
/* タイトルとタグが同じ行にある場合のみ動作します。 */
  
if (eregi("<title>(.*)</title>", $line, $out)) {
    
$title = $out[1];
    break;
  }
}
fclose($file);
?>

(正しいアクセス権限を有するユーザとして接続した場合には) FTPサーバにファイルを書き込むこともできます。 この方法では、新規ファイルを作成することのみができます。 既存のファイルを上書きしようとした場合には、 fopen()の処理は失敗します。

'anonymous'以外のユーザーで接続を行う場合、URLの中で 'ftp://user:password@ftp.example.com/path/to/file' のように ユーザー名(そして多分パスワードも)指定する必要があります。 (Basic認証を要求された際にHTTP経由でファイルをアクセスする場合と 同じ種類の構文を使用することができます。)

例 39-2. リモートサーバーにデータを保存する

<?php
$file
= fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!
$file) {
    echo
"<p>Unable to open remote file for writing.\n";
    exit;
}
/* データをここに書きます。 */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

注意: 上の例からリモートログに書きこむためにこの手法を使用することを考えるかも しれません。 しかし残念ながら、リモート上のファイルが既に存在する状態では fopen()をコールすることができないため、 それはできません。 分散ロギングのようなことを行うには、 syslog() の使用を考えてみてください。



東京デリヘル 池袋デリヘル 新宿デリヘル 渋谷デリヘル 品川デリヘル

鶯谷デリヘル 大塚デリヘル 立川デリヘル 町田デリヘル 横浜デリヘル 埼玉デリヘル

千葉デリヘル 大阪デリヘル 神戸デリヘル 京都デリヘル 名古屋デリヘル デリヘル

アダルトレンタルサーバー アダルトレンタルサーバー 表札 断熱塗料 UGUISU

大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム 老人ホーム