2

非常に簡単な質問があります。しかし、本当に私を夢中にさせています。

私は次のような声明を出している。

$loggedin_user_nameのような1つのphp変数を使用した例と例

まず、上記の文をMySQLデータベースに保存し、上記のステートメントを出力するたびにそれを取り戻したいと思います。彼らは問題ではないようです。
しかし、データベースから抽出した後にデータを印刷しようとすると、同じステートメントが印刷されます。しかし、私は$loggedin_user_name、上記のステートメントの代わりに、ログインしたユーザー名を出力する必要があると思います。

それで、変数内に変数を出力することは可能ですか?はいの場合、方法を提案してください。

4

6 に答える 6

5

sprintf()を使用する

$str = "example and example with one php variable like %s";

次に、データベースからロードして入力します

$out = sprintf($str, $loggedin_user_name);
于 2013-03-03T10:33:23.997 に答える
0

preg_matchを使用して、文字列内の変数名を検索し、それをstr_replaceに置き換えることができます。

于 2013-03-03T10:40:58.493 に答える
0
$name = "ABC";
$bla = "$name";
echo $bla; //ABC

$bla に代入するときに PHP が変数を評価しているため、常に "ABC" になります。

単一引用符を使用してその動作を回避する$bla='$name'; //$nameか ( など)、$ 記号を引用する( など) ことができます$bla="\$name"; //$name。次に、必要に応じて文字列をデータベースに保存できます。

しかし、(eval() を使用する場合のみ、適切な PHP コードで行ってはならない) ことはできません。フルテキストを印刷するときに、php が持つこの動作を構築することはできません。別の回答で言及されているように、printf または sprintf を使用し、$loggedin_user_name を %s (「文字列」の場合) に置き換える必要があります。

于 2013-03-03T11:58:38.513 に答える
0

常に同じ変数名である場合は、使用することをお勧めします

echo str_replace($fromDb, '$variableToReplace', $variableToReplace);
于 2013-03-03T10:34:55.690 に答える
-1

文字列を連結するのが最善です:

$exampleWithUsername = 'example' . $loggedin_user_name;

echo $exampleWithUsername;

'example'はハードコードされた文字列ですが、文字列$ exampleを含む変数を指定するか、$usernameを$exampleに直接連結することができます。

于 2013-03-03T10:42:10.463 に答える
-1

eval 関数を使用できます。例のように使用できます。

$loggedin_user_name = 'bilal';
$str = "example and example with one php variable like $loggedin_user_name";

eval("\$str = \"$str\";");
echo $str;

短所:

  • パラメータとして eval に指定した str 変数または文字列/コードがユーザーによって入力された場合、この使用法により脆弱性が生じます。
  • 評価されたコードで致命的なエラーが発生した場合、スクリプト全体が終了します。
于 2013-03-03T10:37:15.947 に答える