3

私はウェブサイトを開発しようとしています。PHP で記述されるサイトのさまざまなセクションが別のファイルにあることを望みます。「posts.php」、「recents.php」など。関数「include」を使用して、ディレクトリ「/codes/」からファイルを含めようとしています。しかし、それは機能していません。

<?php include '/codes/posts.php' ?>元の HTML ページの途中に挿入すると (ページは PHP 形式で保存されます)、問題が発生します。追加された行の前のコード部分は機能していますが、追加された行の後の部分は消えています。理由がわからない。私は何を間違っていますか?

4

3 に答える 3

2

セミコロンの問題を修正したら、次のことも考慮してください。

パスが定義されている場合 — 絶対パス (Windows ではドライブ文字または \、Unix/Linux システムでは / で始まる) または現在のディレクトリに対する相対パス (. または .. で始まる) — include_path は完全に無視されます。たとえば、ファイル名が ../ で始まる場合、パーサーは親ディレクトリを調べて、要求されたファイルを見つけます。

PHPドキュメントを形成する

または のいずれinclude './codes/posts.php';include 'codes/posts.php'で、最初のバージョンは現在の作業ディレクトリを基準にしてファイルを検索し、2 番目のバージョンはインクルード パスを使用します。

PS:require_onceまたはinclude_onceを使用すると、同じ関数/クラス定義を複数回含めることを回避できます。これにより、問題が発生します (関数の再宣言)。

于 2013-08-05T14:48:53.467 に答える
1

ほとんどの場合、パスの問題が発生しています。/code/posts.phpは絶対パスであるためcode、ベース ディレクトリに呼び出されたフォルダーがない限り、ファイルを見つけることができません。

/最初の( )を削除して相対パスを設定するかcode/posts.php、ホーム ディレクトリへの絶対パスを宣言する必要があります。

define("BASEDIR", '/home/username/public_html/'); #typical path on a linux server using cpanel
include BASEDIR . 'code/posts.php';
于 2013-08-05T14:47:54.383 に答える