アポストロフィーのエスケープ処理に'は非推奨
オライリーのプログラミングPHPを読んでいたら、出力のエスケープの項目で、
$value = str_replace('\'', ''', $value); // ' はおすすめしません
と書いてた。
理由が書いてなかったので、コンテンツエスケープ規則を見に行った。
XSS (Cross Site Scripting) Prevention Cheat Sheet - OWASP
' not recommended because its not in the HTML spec ' is in the XML and XHTML specs.
これによるとaposはXMLとXHTMLでの仕様で、HTMLの仕様じゃないからってことらしい。(Character entity references in HTML 4を参照していた。)
HTML4での仕様みたいだから、HTML5ではどうなったんだろうと思い、
HTML5のドキュメントを見る。
HTML5では無事入っていたみたい。