3

状況は以下です。改行を含むプレーンテキストの電子メールを MySQL に保存しました\r\n。私のphpスクリプトがメールを送信する必要がある場合、最初にいくつかのパラメーターを入力してsprintfから、標準mail()関数でメールを送信します。

私が遭遇する問題は、電子メール クライアント (私の場合はサンダーバード) がこれらの改行を解釈する代わりに表示することです。

スクリプトをテストするために、メールの文をハードコードしました。これを行うと、メールは正しく解釈されます。私の最初の考えは、MySQL がバックスラッシュをエスケープすることだったので、実行しようとしましたstr_replace("\\\\", "\\", $str)が、これは役に立ちません。

私は明らかに間違った仮定やばかげた誤りを犯していますが、私にはわかりません。何が問題なのですか?

4

3 に答える 3

1

このように置き換えてみてください str_replace('\n\r', "\n\r"); \n\r 文字が 4 つの別個の文字としてメッセージに保存されている場合、問題が解決する場合があります。たとえば phpmyadmin を使用して入力した場合、予想どおり 2 文字ではなく 4 文字として保存されます。

それが役に立てば幸い!

于 2012-07-13T11:40:30.390 に答える
0

おそらくこれを使用して、スラッシュを削除して削除します。

stripslashes($str);
于 2012-07-13T11:25:42.487 に答える
0

var_dump を使用してメッセージを出力してみてください。これにより、文字列の値に関するより良い情報が明らかになる場合があります。

于 2012-07-13T11:10:38.063 に答える