PHP 終了タグの使用に関する詳細?>
作者:zhanhailiang 日期:2013-01-17
PHP はファイルを解析するときに、開始タグ を探します。これらは、PHP にファイル内のコードの解釈を開始および停止するように指示します。 この解析方法を使用すると、PHP をさまざまなドキュメントに埋め込むことができ、開始タグと終了タグのペアの外側にあるコンテンツは PHP パーサーによって無視されます。ほとんどの場合、PHP は HTML ドキュメントに埋め込まれます。
単一行コメントは、行末または PHP コードの現在のブロックのどちらか先に来る方のみにコメントします。 これは、 // ... ?> または # ... ?> の後の HTML コードが表示されることを意味します。または # これには影響しません。
上記の説明から、// コメントに ?> が含まれている場合でも、PHP パーサーは PHP 解析が完了したとみなします (PHP の終了タグ ?> が検出された場合、次の開始タグが検出されるまで、その後のコンテンツはそのまま出力されます (新しい行が続く場合を除き、コマンド区切り文字を参照)。
<span class="kw2" style="color:rgb(0,0,0); font-weight:bold"><?php</span><span style="color:#333333"> </span><span class="co1" style="color:rgb(128,128,128); font-style:italic">//$a = '<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>';</span><span style="color:#333333"> </span><span class="co1" style="color:rgb(128,128,128); font-style:italic">//preg_match_all('|<a[^>]+href="([^\"]*)".*</span><span class="co1" style="font-style:italic"><span style="color:#ff0000"><strong>?></strong></span></span><span style="color:#333333">|', $a, $b); //print_r($b);</span>
出力は次のとおりです:
<span style="color:#333333">:!php preg.php </span><strong><span style="color:#ff0000">|', $a, $b); //print_r($b);</span></strong>
上記の問題を解決するにはどうすればよいですか?または、次のように /* */ を使用してコメントするか、?> を文字列連結で接続します。
<span class="kw2" style="color:rgb(0,0,0); font-weight:bold"><?php</span><span style="color:#333333"> </span><span class="re0" style="color:rgb(0,0,255)">$a</span><span style="color:#333333"> </span><span class="sy0" style="color:rgb(102,204,102)">=</span><span style="color:#333333"> </span><span class="st_h" style="color:rgb(51,51,51)">'<a href="test.html" title="#">test</a><a href="test.html" title="#">test</a>'</span><span class="sy0" style="color:rgb(102,204,102)">;</span><span style="color:#333333"> </span><span class="kw3" style="color:rgb(0,0,102)">preg_match_all</span><span class="br0" style="color:rgb(102,204,102)">(</span><span class="st_h"><span style="color:#333333">'|<a[^>]+href="([^\"]*)".*</span><strong><span style="color:#ff0000">?'</span></strong></span><span class="sy0"><strong><span style="color:#ff0000">.</span></strong></span><span class="st_h"><strong><span style="color:#ff0000">'></span></strong><span style="color:#333333">|'</span></span><span class="sy0" style="color:rgb(102,204,102)">,</span><span style="color:#333333"> </span><span class="re0" style="color:rgb(0,0,255)">$a</span><span class="sy0" style="color:rgb(102,204,102)">,</span><span style="color:#333333"> </span><span class="re0" style="color:rgb(0,0,255)">$b</span><span class="br0" style="color:rgb(102,204,102)">)</span><span class="sy0" style="color:rgb(102,204,102)">;</span><span style="color:#333333"> </span><span class="kw3" style="color:rgb(0,0,102)">print_r</span><span class="br0" style="color:rgb(102,204,102)">(</span><span class="re0" style="color:rgb(0,0,255)">$b</span><span class="br0" style="color:rgb(102,204,102)">)</span><span class="sy0" style="color:rgb(102,204,102)">;</span>
この詳細は、JS 終了タグ