2009-09-01 16 views
0

mysql_real_escape_string()を使用してデータベースにデータを保存したので、一重引用符は'のようにエスケープされます。ブラウザでうまく見えますが、テキストをtxtファイルに保存すると、一重引用符に変換する方法はありますか?エスケープ文字を元に戻す

+0

ているのですか?文字列置換関数を呼び出すだけで、 '&#39'を' ''で置き換えることができます。 –

+0

PHPで。私は同じことを考えていた。私はそうするだろうと思う。 – Psyche

答えて

4

はあなたのスクリプトでhtmlentities()どこかに電話を持っている必要がありますので、mysql_real_escape_string()'のみHTML指向の機能に'が行うないターンアポストロフィを行うことに注意してくださいです。あなたの質問については

、あなたが探している機能は、どのような言語でhtml_entity_decode()

echo html_entity_decode(''', ENT_QUOTES); 
2

これは、エンコードされたテキストをデータベースに格納しないでください。あなたは元のフォーマットでそれを保存し、それを表示するときにそれをエンコードしておくべきです。

これで、関数がどのエンコーディングをエンコードしているかを確認し、逆順に逆変換する文字列置換を書き込む必要があります。

擬似コードの例:

s = Replace(s, "'", "'") 
s = Replace(s, "&lt;", "<") 
s = Replace(s, "&gt;", ">") 
s = Replace(s, "&amp;", "&") 
-1

バック文字にそれを得るためにCHRを使用し、「'」の単なるASCII値です。ここでは、コード

$string = "Hello &#39; Man"; 
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string); 
echo $string; # Hello ' Man 
関連する問題