15

WordPress のように、HTML で PHP の小さなスニペットが頻繁に使用される状況では、PHP エコー内で PHP を使用できますか?

例:

<?php 
    echo "<?php the_author_meta('description'); ?>";
?>

それは不必要かもしれませんが、それを行うことさえできますか? そうでない場合でも、HTML を出力するときに PHP を終了して再起動する方法は、まだ少し混乱しているように思われる PHP の側面の 1 つです。

適切な例として、Chris の回答は次のとおりです: How can I echo HTML in PHP? - どうしても彼の例の最後に a を付けたいのです?>が、それではエラーが発生します。誰かが、PHP でのこの開始/停止が、HTML とブレンドするときにどのように機能するか、それ自体が PHP スニペットを使用する可能性がある HTML の包括的な情報の方向を教えてもらえますか。

4

4 に答える 4

9

試す:

<?php
    echo htmlspecialchars("<?php the_author_meta('description'); ?>");
?>
于 2013-03-05T15:52:41.400 に答える
8

PHP はコードを 1 回のパスで解釈するため、評価される PHP コードをさらにエコーすることはできません。たとえば、 を持っている場合、出力として<?php echo '<?php echo "hello"; ?>'; ?>文字通りテキストを取得し<?php echo "hello"; ?>、インタープリターはそれに触れません。

ただし、自由に PHP にジャンプしたり、PHP からジャンプしたりできます。

<?php
echo "I am going to be interpreted by PHP.";
?>
I am not interpreted by PHP.
<?php
echo "But I am again.";
?>

それ自体が再評価された PHP コードを出力する必要があると思われる場合は、これを達成するためのより良い方法が常にあります。あなたが達成しようとしていることの具体的な例を挙げれば(実際のケース)、SOの人々は喜んで助けてくれるでしょう.

于 2013-03-05T15:50:43.300 に答える
4

に関して: 「HTML を出力するときに PHP を終了して再起動する方法は、まだ少し混乱しているように思われる PHP の側面の 1 つです。」

<?php
// Do some wicked cool stuff in PHP here.
?>
<html>
<body>
Output some html here
<?php
//More awesome PHP stuff here.
?>
Back to html
</body>
</html>
<?php
// You can do any final stuff you want to do here.
?>

または、次のような意味かもしれません。

<table>
<?php 
foreach($person as $p){
  echo "<tr>";
  echo "<td>".$p['name']."</td>";
  echo "</tr>";
}
?>
</table>
于 2013-03-05T15:50:40.220 に答える
1

はい、しかしそれは恐ろしい考えです。この場合、関数を書くだけです。複数のオカレンスを一緒に「リンク」する場合は、これを行う独自の関数を作成します ( などfunction describe() {the_author_meta('description');}) 。

<?php一般に、と次の間?>にあるものはすべて PHP ブロックと見なされ、エンジンによって解析されることを認識する必要があります。それらのブロックでオンになっているものはすべてそのまま残されます。特定の問題がある場合は、具体的に質問してください ;)

于 2013-03-05T15:47:46.080 に答える