-1

簡単に言えば:

<? include("open.php"); ?>

VS

<? include("open.php?page=about"); ?>

VS

<? $x="varToPass"; include("open.php"); ?>

なぜこれができないのか、確かにこれはプログラムされているはずです。そうでない場合は、これを実現するためにraw / corePHPCファイルを編集できます。

4

3 に答える 3

2

簡単な答え。このようなパラメータを渡す必要はありません。

include 'open.php?page=about&something=true&more=rubbish';

$page = 'about';
$something = true;
$more = 'rubbish';

include 'open.php';

どちらが読みやすいかを確認するのは非常に簡単だと思います。どちらも、あなたがやろうとしていることを正確に達成します。

実際のところ、includeステートメントには、参照した時点で示されたファイルのコードが文字通り含まれています。

open.phpインクルードを実行しているファイルは、インクルードステートメントを記述した正確な場所にソースがあるものとして扱うことができます。

編集:

あなたの質問の2番目の部分に答えるため。はい、ソースを変更してこれを達成することはできますが、それはほとんど無意味な演習になります。

編集2:

また、URLでファイルを含めたいと思うかもしれません。

例えばinclude 'http://127.0.0.1/open.php?page=about'

この場合、httpストリームラッパーが呼び出され、変数が要求したファイルに渡されるため、完全に可能です。

この動作は、重大なセキュリティリスクをもたらすため、デフォルトでは無効になっています。

allow_url_includeの値を編集することでオンにできますphp.ini。しかし、私はあなたがそうしないことを提案します。

于 2012-08-01T11:27:47.327 に答える
1

ファイルを含めると、それらは同じスコープに含まれるため、変数を再利用したり、パラメーターを取得したりできます。

<?php
    // index file
    $x = $_GET["x"];
    include 'file.php';

そして、file.phpでは、次のいずれかを実行できます。

<?php
    //include file
    if ($x != '')

また:

<?php
    //include file
    $x = $_GET["x"];

だから、物事を回す必要はありません-

于 2012-08-01T11:23:06.273 に答える
-1

含める/要求するのは物理ファイル用であり、着信パラメーターに基づくファイルの動的表現ではありません。

後者の場合、 cURLを調べる必要があります。

于 2012-08-01T11:22:56.323 に答える