①のような相対パスでの指定方法と②のようなドキュメントルートのフルパス($_SERVER['DOCUMENT_ROOT'])を使ったパスの指定方法では、どのような違いがありますか?また、これらの使い分け方を教えて頂けませんか?
・設定ファイル
①define('IMAGE_PATH', '/assets/images/');
②define('IMAGE_DIR', $_SERVER['DOCUMENT_ROOT'] . '/assets/images/' )
※MVCモデルで開発しています。現在は、dockerでの仮想環境で開発していて、今後、サーバーにアップする予定です。
ドキュメントルート:/var/www/html
画像フォルダ: www/html/assets/images
設定ファイル: www/conf/const.php
modelフォルダ: www/model
viewフォルダ: www/view
ある教材を真似して、設定ファイルにmodelフォルダやviewフォルダや画像フォルダなどを読み込む際のパスを指定しました。
初めは、①のようなドキュメントルートからの相対パスの指定方法をすれば、②の方法は必要ないように思いました。
しかし、状況に応じて①と②を使い分けないと思い通りの挙動をしないことがわかりました。
例
①でないといけないもの
PHP
1preg_replace('/[([\w]{10})(.png|.jpg)]/', '<div><img src="'. PRE_IMAGE_PATH . '$1$2"></div>', $body); 2 3※preg_replaceで置換後の文字列はそのままHTMLで出力するためのものです
②でないといけないもの
PHP
1rename(IMAGE_DIR . $oldname, IMAGE_DIR . $newname);
・この結果による私の推測
①→HTMLに認識させる場合のパスの指定方法
②→PHPに認識させる場合のパスの指定方法
短絡的に出した推測ですので、これらの違いについて細かくご指摘頂ければ助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/17 09:08