TOP ▲ itcore TOP プログラムパーツ

uHtmlspecialchars4 htmlspecialchars 空白を に変換する。行末に[nr]がある場合は\nを取る。行頭に[html]がある行はエンティティ化しない。 | itcore 2018年

PHP

PHP TOP

関数

<?php
// htmlspecialchars 空白を&nbsp;に変換する。行末に[nr]がある場合は\nを取る。行頭に[html]がある行はエンティティ化しない。
function uHtmlspecialchars4($text) {
  $a_line = explode("\n", $text);
  $html = "";
  foreach ($a_line as $line) {
    if ("[html]" == substr($line, 0, 6)) {
      // [html]の行はそのまま
      $html .= substr($line, 6);
    } else {
      // HTMLエンティティ化
      $line = htmlspecialchars($line);
      // タブと空白の変換
      $line = str_replace("\t", "    ", $line);
      $line = str_replace(" ", "&nbsp", $line);
      $html .= $line;
    }
    $html .= "\n";
  }
  // [nr]は改行の<BR>をつけない
  $html = str_replace("[nr]\n", "", $html);
  return $html;
}
?>

テストプログラム

<style type="text/css">
.t01 {border-collapse: collapse;margin:6px; }
.t01 th{padding: 6px;border: 1px solid forestgreen; background-color:mediumseagreen;text-align: left;}
.t01 td{padding: 6px;border: 1px solid forestgreen;}
</style>
<?php include_once "uHtmlspecialchars4.func"; ?>
<?php
$data = <<<'EOT'
コーディングスタイルの例
[html]<table class=t01><tr><th>スタイル<th>特徴
[html]<tr><td><a target=_blank href=https://www.amazon.co.jp/dp/4320026926>プログラミング言語C
[html]カーニハンスタイル</a>
[html]<td>現代プログラミングの潮流の源流ともいえる
C言語についてのプログラミングスタイルが書かれています。
プログラミングを職業とする人は一度読んで置くと良いと思います。
[html]</table>
EOT;
echo nl2br(uHtmlspecialchars4($data));
?>

実行結果

コーディングスタイルの例
スタイル特徴
プログラミング言語C
カーニハンスタイル

現代プログラミングの潮流の源流ともいえる
C言語についてのプログラミングスタイルが書かれています。
プログラミングを職業とする人は一度読んで置くと良いと思います。