preg/mb_ereg 系関数の戻り値がチェックされていない

メッセージ

preg/mb_ereg 系関数は NULL を返すことがあります。

特に preg_replace/preg_replace_callback が深刻で

$string = preg_replace($pattern, $replacement, $string);

の場合、$string が置換後の文字列ではなく NULL に置き換わっているかもしれません。
NULL は "" にキャストされるため「なぜか表示されない」という挙動になります。

例:

また、/u 修飾子を使う場合、$string に不正な UTF-8 シーケンスが含まれている場合は NULL を返すそうです。
qiita.com/HikaruYokogoshi/items/6f96bc209d59ae44c802#comment-777764249f93a3a94b04

すべての箇所で NULL チェックをするのは難しいので、htmlsc() に相当する関数を作ったほうがよいと思うのですがどうでしょうか?




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-27 (日) 15:57:08
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.132 sec.

OSDN