- ベストアンサー
PHPのインクルード方法とは?
- PHPのインクルード方法について調べてみました。サイトの管理を一括で行いたいという要望を解決するための方法です。
- インクルードしたい部分をメモ帳に貼り付けて保存し、PHPのinclude_once関数を使って絶対パスや相対パスで指定することで、別ファイルの内容を取り込むことができます。
- 質問者さんは絶対パスの指定方法について悩んでいるようです。PHPの絶対パスやPERLの絶対パスについて調べ、間違ったURLの指定方法をしている可能性があるようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 早速、<?php include_once("upload/▲▲.txt"); ?>に > 書き直してみたのですが、やはり500エラーになってしまいます。 まず、IISなりApacheなりにPHPをインストールしていると思われますが、 InternalServerErrorが発生しているとなると、PHPとしてモジュールが動作しているか確認の為、 test.php というファイルを作り、 <?php phpinfo(); ?> でインストールしているPHPが動作しているかまず確認をしてみてください。 > 以下のサイトを参考して、その通りにやってみたのですが、 > 全然うまくいかなかったものですから…。 > http://seo.k-m-k-m.com/hp/include/ > この他にやらなければいけないことはあるでしょうか? 上記を目的とするのでしたら、(/usr/local/apache/webroot/upload/▲▲.txtにファイルがあるとして) <?php $filename = "/usr/local/apache/webroot/upload/▲▲.txt"; $fd = fopen( $filename,"rb" ); if( $fd == FALSE ){ printf( "file open error [%s]",$filename ); exit; } fseek( $fd,0,SEEK_END ); $filesize = ftell( $fd ); fseek( $fd,0,SEEK_SET ); $body = fread( $fd,$filesize ); fclose( $fd ); printf( "%s",$body ); ?> としてファイルを読み出してprintf()するのが手っ取り早いと思われます。 include()やinclude_once()はphpのプログラムや定義を読み込むもので、 文章(HTML)などを読み込むには適さないです。 ▲▲.txt にたとえば <HTML> <HEAD><TITLE>タイトル</TITLE></HEAD> <BODY>内容</BODY> </HTML> だったとすると <?php include_once( upload/▲▲.txt ); ?>で展開される結果は <?php <HTML> <HEAD><TITLE>タイトル</TITLE></HEAD> <BODY>内容</BODY> </HTML> ?> となりPHPの構文でエラーが出ます。(500エラーにはならないハズですが。。。) include()やinclude_once()はPHPのプログラムや変数定義をソースに 取り込む物として使ってください。
その他の回答 (1)
- tabaxyz
- ベストアンサー率64% (11/17)
<?php include_once("http://●●.com/▲▲.txt"); ?> include_once()の引数は相対パスであるべきです。 ▲▲.txtファイルはアップロードされるディレクトリにあるのでしょうから、 <?php include_once("upload/▲▲.txt"); ?> などと相対パスで参照すれば出来ると思います。 ただ、include_once()はPHPのプログラムをインクルードするので、 ▲▲.txtは誰でもアップロードできるものである場合サーバーへの不正アクセスのバックドアを作られたり、破壊行為をされる事がありますから、 プログラムをフォーム上からアップロードするのは危険ですので、 FTPなり、SCPなりでアップロードしたほうがよいと思われます。
お礼
アドバイスありがとうございます。 早速、<?php include_once("upload/▲▲.txt"); ?>に 書き直してみたのですが、やはり500エラーになってしまいます。 それと、できれば絶対パスでの指定したいのですが、 その場合、また違った方法じゃなければいけないのでしょうか? PHPを使う場合、サーバーの設定を変更しなければいけないなどの 特別な操作が必要なのでしょうか? 以下のサイトを参考して、その通りにやってみたのですが、 全然うまくいかなかったものですから…。 http://seo.k-m-k-m.com/hp/include/ この他にやらなければいけないことはあるでしょうか? それと、現在メモ帳にペーストしてFTPソフトで アップロードしているのですが、 「.txt」という形式だと危険なのですか? 「▲▲.php」というファイル名で アップロードした方がいいというでしょうか? 本来の質問とは異なりますが、 初心者なのでそういった知識がないので そちらも教えていただけると助かります。 質問だらけで専門用語などもわからないため 理解しにくい文章で申し訳ありませんが、 よろしくお願いいたします。