phpのincludeとパスとスコープ

シェアする

MT4のテンプレート作ってる時にPHPではまったのでメモ


$cat includetest.php
<?php
$value = "aaaaaaaaaaa";
require "http://loumo.jp/inc.php";


$cat inc.php
<?php
echo $value;

一間問題なく動きそうなコードだが、includetest.phpを実行しても$valueの値は表示されなかった。requireの値をURLでない指定"inc.php"のみなどにすると$valueは表示される。php.iniでallow_url_includeをoffにしたらエラー出るし、そうでなければ普通に動きそうだが不思議。

ためしたのはlolipop(PHP4)と自分のマシン(PHP5) どっちも同じ結果だった。PHPマニュアルのinclude回り見ても特に書いてないような・・・ うーん、なにか見落としてるかな。

-- 追記

今朝なにげなく2chPHPくだ質見たらテンプレに書いてあった。URLでincludeするとPHPの実行結果がかえってくるのね。

-- さらに追記

タイトル間違ってたはずかしい。

Sponsored Link

シェアする

フォローする

コメント

  1. 味塩 より:

    requireじゃなくてincludeで、しかも相対パスしか使わない俺には関係ない話だな。
    というか、httpから指定すると他スペースの可能性があるから上記のような仕様なんじゃね?

  2. jklryo より:

    MTだとMTBlogURLで指定すると楽なんだ。と思ってドキュメントみたらMTStaticWebPathとかMTBlogSitePathとかあった。

    つーか他URLのphpを実行しないままincludeできたら問題ありすぎだ。