1

(これはインクルードと関係があります。しばらくお待ちください。) ドメインが移管されるのを待っており、事前に新しいホスティング サービスにドメインを設定しようとしています。古いサイトではすべてのパス名が絶対パスであったため、新しいホストのすべてのリンクが古いホストのページを指していることに気付きました。私はそれらをすべて相対的なものにすることにしました(将来の可能な動きのためにも)。私は最初に次のようにしました:

index.php

include ('./header.php');

header.php

include "./panel.php";

パネル.php

Contents of panel.

これは機能し、私のページは次のように表示されます。

パネルの内容。

次に、サブディレクトリ内のファイルからこのヘッダー ファイルをインクルードしたいので、ドメインの変数を設定することにしました。また、ドメイン変数を使用して絶対パスを作成できます。現在、一時的なドメイン名を持っていますが、後で移管が行われたときに実際のドメイン名に変更できます。そこで、header.php を次のように変更しました。

$domain="http://tempdomain.com"; //I can change this after the transfer 
$panel=$domain."/panel.php";
echo $panel;
if ((include $panel) !== 1)
{
  echo "<br>include failed";
}

私が得るものは次のとおりです。

http://tempdomain.com/panel.php
インクルードに失敗しました

インクルード構文についてさまざまなサイトを調べましたが、コードにエラーが見つかりません。これらのファイルはすべて / ディレクトリにあります。何か案は?

4

3 に答える 3

1

含めるときは、URL ではなく構造化されたディレクトリを指定する必要があります。

ホスティング サーバーのパスは、home/public/www/htdocs/your_directory_name/panel.php のようになります。それはうまくいくでしょう。

于 2013-03-16T13:20:49.947 に答える
0
  • まず、allow_url_fopenフラグを に設定する必要がありますphp.ini。そうしないと、リモートの include() を実行できません。そうなっているかどうかを確認するために実行var_dump(ini_get("allow_url_fopen"));します。

    • 次に、「PHP 4.3.0 より前の Windows バージョンの PHP は、allow_url_fopen が有効になっている場合でも、この関数を介したリモート ファイルへのアクセスをサポートしていません。」- PHP ドキュメントを参照

    • 第 3 に、リモート PHP スクリプトは有効な PHP コードを出力として生成する必要があります。http 経由で include() すると、スクリプト自体ではなく、その出力が含まれます。

于 2013-03-16T13:58:13.217 に答える