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

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

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

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