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

uChomp 行末の改行コードを取り除く。CRLF LF CR | itcore 2018年

PHP

PHP TOP

関数

<?php
//行末の改行コードを取り除く。CRLF LF CR
function uChomp($line) {
  $cr = chr(13); $lf = chr(10);
  $s2 = substr($line, -2);
  $s1 = substr($line, -1);
  if ("$cr$lf" == $s2) return substr($line, 0, strlen($line) - 2);
  if ($lf == $s1) return substr($line, 0, strlen($line) - 1);
  if ($cr == $s1) return substr($line, 0, strlen($line) - 1);
  return $line;
}
?>

テスト

<?php include "uChomp.func"; ?>
<?php include "uHexDump.func"; ?>
<?php
  $cr = chr(13); $lf = chr(10);
  $ret = "1$cr$lf"; echo "ret = " . uHexDump($ret) . "<br>\n";
  $ret = uChomp($ret); echo "ret = " . uHexDump($ret) . "<br>\n";
  $ret = "2$lf"; echo "ret = " . uHexDump($ret) . "<br>\n";
  $ret = uChomp($ret); echo "ret = " . uHexDump($ret) . "<br>\n";
  $ret = "3$cr"; echo "ret = " . uHexDump($ret) . "<br>\n";
  $ret = uChomp($ret); echo "ret = " . uHexDump($ret) . "<br>\n";
?>

実行結果

ret = 310d0a
ret = 31
ret = 320a
ret = 32
ret = 330d
ret = 33