FC2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
PHPでパスを取得
おつかれさまです。
フッチーです。

自分を始めクリエイトウェーブが多忙な為、なかなかブログの更新が滞りがちです。
申し訳ありません。

さて、最近グリーにモバゲー、ミクシイとSNSアプリに携わる事が多いのですが、前外に頼んでいたPHPプログラムを自分で担当。Flashとかでゲーム制作、サーバーが絡むものでもクライアント(ユーザーのPC本体)で動くゲーム本編を作ってた事が多いので、中々苦戦中・・・

サーバーは今までもゲーム発注元担当が多かったのとゲーム本編作る方を主にしてたので、あまり手を出さないようにしていたのですが、やってみるとこれはこれでPHP+MySQLも面白いなと思ってきてたりして・・・

さてPHP+Smartyでグリーアプリ制作してたら、HTMLに表示されるべき画像が表示されない。
<img src="img/line.gif" width="240" height="10" />

とかの画像は表示されないという問題が・・・・ まあ基本的なことなんでしょうけど。
SNSシステム通っててパスがずれてるのは容易に想像できるんですが、まあどうすりゃいいんだってことで。

携帯端末のURLを見てみたら、案の定グリーのテスト用URLが表示されてます。当たり前だろうけど、HTML的にはここからのパスを読みにいってるわけで、当然画像読み込みに失敗。

色々PHPにコード埋め込んで実験してしらべてみました。

print(getcwd());

結果
HTTPじゃなくサーバー上のPHPが存在するフォルダのパス
/var/~~ とかのやつ



print($_SERVER["HTTP_HOST"]);

結果
URLというかホストデータが帰ってきた。ホストデータなのでhttp://はなし。
たいていの場合は、ドメインとかサブドメイン、www.ドメインとかが返ってくるんじゃないのかな。



print($_SERVER['SCRIPT_NAME']);

結果
PHPのファイル名



print($_SERVER['SCRIPT_FILENAME']);

結果
サーバー上のPHPのファイル名までのパス



print($_SERVER["DOCUMENT_ROOT"]));

結果
サーバー上のPHPが存在するフォルダのパス


サーバー上のパスが判ってもHTML上じゃ使えないと思うので、結果的に②しかつかえなさそう。

$URL="http://".$_SERVER["HTTP_HOST"]."/読み込ませたい画像パス"
とかするしかないのかな・・・

他に良い方法があるんですかね。
模索は続く・・・・


テーマ:PHP - ジャンル:コンピュータ

カテゴリー:PHP | TM(0) | CM(0)
コメントの投稿

管理者にだけ表示を許可する