少し奇妙に聞こえるかもしれませんが、説明してみます。
次のコードを使用して、$text
サポートされていない文字が含まれているかどうかを確認します。
if(!preg_match('/\A[\w .,]+\z/', $text))
{
echo "Text contains unsupported characters.";
}
問題は$text
、ユーザーがテキストエリアに入力したテキストです。
$text_c = $_POST['text'];
$text = mysql_real_escape_string($text_c);
echo "<form method='post'><textarea name='text'>".$text."</textarea><br /><input type='submit' name='submit' value='Submit'></form>";
1 つのことを除いて、すべてが完全に機能します。例、これがテキストエリアに入力されたテキストの場合:
こんにちは、私の名前はジョンです。
わかった。
こんにちは、私の名前はジョンです。
私は20歳です。
番号。テキストにサポートされていない文字が含まれています。(テキストエリアの内容が変化し、次のようなものがあるため、新しい行を参照しますMy name is John.\r\nI am 20 years old.
:)
私の質問は次のとおりです。新しい行をサポートするために何を変更する必要がありますか? お分かりできると良いのですが。
編集:mysql_real_escape_string
すべてが思い通りに機能しないことを発見しました。mysql_real_escape_string
(私のpreg_match
場合)「組み合わせる」またはmysql_real_escape_string
ドロップするはずの解決策はありますか?