完全な HTTP アドレスでしかアクセスできない PHP ファイルを含める必要があります。このトピックについて混乱しています。悪い習慣だと聞いたことがあります。どうすれば解決できますか?
3 に答える
マニュアルから: http://php.net/manual/en/function.include.php
添付のセキュリティ警告もお読みください
PHP で" URL fopen wrappers " が有効になっている場合 (デフォルト設定)、URL を使用して (HTTP またはその他のサポートされているラッパー経由で) 含めるファイルを指定できます - リストについては、サポートされているプロトコル/ラッパーのリストを参照してくださいプロトコル) をローカル パス名の代わりに使用します。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合、HTTP GET で使用される URL 要求文字列を使用して、変数をインクルード ファイルに渡すことができます。これは厳密には、ファイルをインクルードして親ファイルの変数スコープを継承させることと同じではありません。スクリプトは実際にリモート サーバーで実行され、その結果がローカル スクリプトに組み込まれます。
はい、ソースについて本当に確信がない限り、HTTP 経由で含めることはお勧めしません。PHPコードを実行せずにコンテンツを取得したいだけの場合は、次を使用できます。
これを行うには、PHP 設定 allow_url_fopen をオンにする必要があります。cURL を使用する別のオプション (恥知らずに PHP マニュアルから取得):
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
必要に応じて htmlentities() を介して渡す必要があります。
同じサーバーにいる場合は、次を使用できます。
<?php
readfile('footer.html');
?>
それは非常に悪い習慣です。それを含める代わりに、ファイルのローカル コピーを含めて、SSH を使用してリモート サーバー上のコピーと同期してみませんか。