私は以下を実行していました [〜#〜] php [〜#〜] コード:
<?php
</script>
?>
解析エラーはなく、出力は "?>
"( 例 )。
同様の場合、解析エラーが発生します。
<?php
</div>
?>
解析エラー:構文エラー、予期しない「<」...
なぜ<?php </script> ?>
同じエラーを出しますか?
これは、 PHP code のブロックを開始するさまざまな方法があるからです。
<? ... ?>
(short_open_tag
として知られています)
<?php ... ?>
(実際の標準)
<script language="php"> ... </script>
(非推奨)
<% ... %>
(5.3.0以降、廃止予定および削除されたASPスタイルのタグ)
どうやら、PHPブロックを片方で開き、もう片方を閉じることができます。それを知りませんでした。
したがって、コードでは、<?
を使用してブロックを開きましたが、PHPは</script>
をより近いものとして認識します。
<?php <----- START PHP
</script> <----- END PHP
?> <----- JUST GARBAGE IN THE HTML
PHPでは、script
タグを使用してPHP=ブロックを開くことができます。
使用できます
<script language="php">
echo 'hello world';
</script>
したがって、あなたの例では、通常の開始タグ<?php
、終了タグ付き、</script>
。したがって、パーサーは、終了スクリプトタグの後のすべてのテキストが通常のHTML
であると想定します。
詳細については、HTMLからのエスケープを参照してください。