1

完全な HTTP アドレスでしかアクセスできない PHP ファイルを含める必要があります。このトピックについて混乱しています。悪い習慣だと聞いたことがあります。どうすれば解決できますか?

4

3 に答える 3

2

マニュアルから: http://php.net/manual/en/function.include.php

添付のセキュリティ警告もお読みください

PHP で" URL fopen wrappers " が有効になっている場合 (デフォルト設定)、URL を使用して (HTTP またはその他のサポートされているラッパー経由で) 含めるファイルを指定できます - リストについては、サポートされているプロトコル/ラッパーのリストを参照してくださいプロトコル) をローカル パス名の代わりに使用します。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合、HTTP GET で使用される URL 要求文字列を使用して、変数をインクルード ファイルに渡すことができます。これは厳密には、ファイルをインクルードして親ファイルの変数スコープを継承させることと同じではありません。スクリプトは実際にリモート サーバーで実行され、その結果がローカル スクリプトに組み込まれます。

于 2010-08-23T15:57:44.860 に答える
1

はい、ソースについて本当に確信がない限り、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');
?>
于 2010-08-23T15:53:49.093 に答える
0

それは非常に悪い習慣です。それを含める代わりに、ファイルのローカル コピーを含めて、SSH を使用してリモート サーバー上のコピーと同期してみませんか。

于 2010-08-23T15:54:38.447 に答える