
[code]

    <pre><code>
    function a() {
      $str = ' class="name"';
      echo '<pre'.$str.'><code>'.'</code></pre>';
    }
    </code></pre>
    
[/code]

ソースコードを記述するときにHTMLには上記のように記述し、PHPで `<` や `>`
を置換していますが、`<pre><code>...</code></pre>` 内に `</code></pre>`
が含まれていた場合、そこでタグが閉じられてしまうのでうまく置換できません。  
この場合は、

[code]

    <pre><code>
    function a() {
      $str = ' class="name"';
      echo '&lt;pre'.$str.'&gt;&lt;code&gt;'.'&lt;/code&gt;&lt;/pre&gt;';
    }
    </code></pre>
    
[/code]

のように手動でやるほかないのでしょうか。


CC BY-SA 3.0
2017-10-02T08:58:29.017
38361
2019-06-18T08:02:10.287
19687
question
php
PHPで<や>を置換するときの問題点


特殊文字エンティティの変換については標準関数がありますのでこちらを利用すると便利です。  
[htmlspecialchars — 特殊文字を HTML
エンティティに変換する](http://php.net/manual/ja/function.htmlspecialchars.php)

[code]

    function a() {
      $str = ' class="name"';
      echo htmlspecialchars('<pre'.$str.'><code>'.'</code></pre>');
    }
    
[/code]


CC BY-SA 3.0
2017-10-03T00:43:23.337
38379
2017-10-03T00:43:23.337
22665
38361
answer