[PHP-users 6232] Re: require()関数の使い方についての質問

Tamio Shibata php-users@php.gr.jp
Sat, 16 Mar 2002 02:41:29 +0900


柴田@名古屋です

> お世話になりますclamです
【略】
> require関数はマニュアルを見ると、戻り値を設定したら
> パーサーエラーになる、とありましたが
> 引数を設定してはいけないとは書いて有りませんでした
>  require('footer.inc($tittle)');
> のどこがおかしいのでしょうか?
> 何卒是非、御教授お願いします。

マニュアルの
http://jp.php.net/manual/ja/function.include.php
にある
----------------------
"URL fopenラッパー"が 有効になっている場合(デフォルト設定では有効です)、ロー
カルなパス名 の代わりにURL(HTTP経由)を用いて読み込むファイルを指定することが
可能です。 URLで指定されたサーバがファイルをPHPコードとして解釈することが 出
来る場合には、HTTP GETを使用してURLリクエストに引数を指定することが 出来ま
す。これはファイルの読み込み云々やスコープの継承とは関係なく、 ただ単純にス
クリプトがリモートのサーバで実行されて結果がローカルの スクリプトに読み込ま
れる、というだけのことです。
----------------------
のことを言われているのでしょうか。
そうであれば、
例えば
呼び出すphpの中で
require( 'http://www.example.com/footer.inc?title=INDEX.HTML' );
という書き方になるかと思われます。

実験してみました。

footer.inc の内容が、
--------
<html>
 <head>
  <title><? echo $title; ?></title>
 </head>
 <body>
  $titleの値は、<? echo $title; ?>です。
 </body>
</html>
---------
test.php の内容が、
---------
<?
$title="INDEX.HTML";
$req_path="http://www.example.com/footer.inc?title=".$title;
require( $req_path );
?>
---------
であれば、
test.phpをパースした結果は
---------
<html>
 <head>
  <title>INDEX.HTML</title>
 </head>
 <body>
  $titleの値は、INDEX.HTMLです。
 </body>
</html>
---------

となります。
--
********************************
株式会社 有人社 IT-P事業部
柴田 民雄 shibata@yujinsha.co.jp
********************************