dポイントプレゼントキャンペーン実施中!

階層の異なる場所にあるphpスクリプトファイル内に記述してあるticker.phpを参照するとします。

--"sample.php"
<?php
include_once(dirname(__FILE__) . "/../ticker.php");
?>
------------

--"../ticker.php"
// ※一部割愛
<embed src="ticker.swf">
------------

と、このように何の変更も加えない状態だと、ticker.php内に記述しているembedファイルがsample.phpフォルダにあると見なされ、swfファイルの読み込みに失敗します。この「ticker.swf」をきちんと参照できるようにしたいのですが、最適な方法はございますでしょうか。

A 回答 (3件)

私の場合は、include 元の、実行 php 側に相対パスのdefine を行っています。



例)以下2つの実行 php と 1つのライブラリphp があった場合
public_html/sample.php ----------- 実行php(1)
public_html/test/sample.php ----- 実行php(2)
public_html/lib/ticker.php ----- ライブラリphp

■実行php(1)側
define('TOP_DIR', './');
include_once(dirname(TOP_DIR.'lib/ticker.php');

■実行php(2)側
define('TOP_DIR', '../');
include_once(dirname(TOP_DIR.'lib/ticker.php');

■ライブラリphp側
<embed src="<?php echo TOP_DIR?>ticker.swf">
    • good
    • 0

No.2 です。

以下間違えました。

(誤)
include_once(dirname(TOP_DIR.'lib/ticker.php');

(正)
include_once(TOP_DIR.'lib/ticker.php');
    • good
    • 0
この回答へのお礼

define分での定義による方法が大変参考になりました。自身の構築するサイトでもこの方法を採用したいと思います。

お礼日時:2009/04/13 11:26

Webルートからの絶対パスで参照すればよいかと思います。



例)ticker.swfの場所が ttp://www.hoge.jp/swf/ticker.swf であれば、
<embed src="/swf/ticker.swf">

この回答への補足

ticker.swfをsample.phpだけに適応させるだけならこれでもいけますが、さらに別のフォルダにticker.swfを参照するファイルを追加するとなると応用が利きにくそうです。

補足日時:2009/04/10 14:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!