0

パフォーマンスを向上させるために、自分のサイトで不要なHTTPリクエストを実行しないようにしたいと思います。そのため、 cURLを使用せずにサーバーにローカルPHPを含めたいと思います。問題は、私が呼び出しているPHPが、いくつかのパラメーターがHTTPGETを介して渡されることを期待していることです。他の場所からそれらのPHPファイルにもアクセスできるようにしたいので、そのままにしておきたいと思います。

これを行うための最良の方法は何ですか?GETパラメーターを指定しながらローカルPHPファイルの出力にアクセスできますか?

4

3 に答える 3

3

パフォーマンスを向上させるために、自分のサイトで不要なHTTPリクエストを実行しないようにしたいと思います

includeまた、HTTP URIを指定するとHTTPリクエストが作成されるため、クライアントの非同期インクルードの代わりに(たとえば、AJAXやiframeを使用して)サーバー上で同期的にリクエストを行うため、ページの読み込みがさらに遅くなります。

したがって、インクルードは意図したとおりに機能する可能性がありますが(出力をインクルードしたいのですが)、サイトの速度が上がることはありません。

私が呼び出しているPHPは、いくつかのパラメーターがHTTPGETを介して渡されることを想定しています。他の場所からそれらのPHPファイルにもアクセスできるようにしたいので、そのままにしておきたいと思います。

次に、それらのファイルを変更し、それらを含める前に適切な変数を設定します。またはさらに良いことに、それを関数にリファクタリングします。たとえば、含めるファイルが次のようになっている場合:

$username = $_GET['username'];
print "User: $username";

次に、関数にリファクタリングして、別のファイルに保存します。

function PrintUsername($username)
{
    print "User: $username";
}

そしてそれを適切に呼んでください:

include('printusername.php');
PrintUsername($_GET['username']);

(あちこちにスローすることをお勧めしisset()ます。)これで、この出力も必要とするコードを変更できます。

include('printusername.php');
PrintUsername($someOtherVariable);

$_GETこれで、URLや魔法に頼る必要はありませんが、include意図したとおりにすべての関数を使用するだけです。

于 2012-06-12T11:51:05.537 に答える
2

Linuxボックスを使用していると仮定すると、スクリプトを実行して、次のような出力を取得できます。

exec ("php myPhpFile.php arg1 arg2 arg3 > myPhpOutput.html");

次に、出力されたファイルを開いて読み取ります。

ただし、これを機能させるには(そしてそれは醜いです!)、myPhpFileを変更し、$_GETパラメーターをテストするメソッドを実装する必要があります。それらが見つからない場合は、argvを使用してプロパティをロードします


改善(私は怠惰に考えていました:))

shell_execは、出力を文字列として返します。したがって
$filecontents = shell_exec("php yourfile.php arg1 arg2 arg3...");
、phpファイルの処理された出力を返します。

于 2012-06-12T12:16:23.150 に答える
0

これは醜いですが、機能します。

$_GET['foo'] = 1;
$_GET['bar'] = 2;
include '/path/to/file.php';
于 2012-06-12T11:47:27.293 に答える