PHPのエスケープでシングルクォーテーションだけ許可するにはどうしたらいいでしょうか?
発生している問題・エラーメッセージ
PHPでフォームから住所を取得していますが、海外の住所が入るためシングルクォーテーションが入ります。例えばO'Fallonという都市があります。
htmlspecialcharsでエスケープしてシングルクォーテーションだけ残すにはどうしたらいいでしょうか?
・ユーザーからの入力に対してシングルクォーテーション以外の記号は全て消す。
・DBにはシングルクオーテーションの入った文字列でインサートする。
上記2点が希望してる動作です。
試したこと
PHP
1 $string = str_replace(array("%", "<", ">", "=", "&", ";", "<", ">", "&", "#", "=", "?", "?", "\"" ), "", $string);
str_replaseで置き換えると&や#や;を全部取り除かなければいけないので、htmlspecialcharsより許容文字が増えてしまいます。
回答4件
あなたの回答
tips
プレビュー