0

名前と電子メール アドレスを含む MySQL テーブルがあります。データは最初に .csv ファイルからインポートされたもので、最初は完全な電子メール アドレスが含まれていませんでした。@place.domain をユーザーのエイリアスに追加する必要がありました。

データが MySQL テーブルにある場合は、通常のように見えます。ただし、コンテンツを PHP で出力すると、person @place.domain. 個人と @ の間には常にスペースがあります。MySQL 列ではそのようには見えず、データをメモ帳、Word、Excel などにコピー/貼り付けしてもそのようには見えません。さらに、列のデータを消去して手動で person に置き換えると、 @place.domain で、私の PHP アプリでは正常に表示されます。だから、私が検出できない隠し文字が PHP によって検出されているのではないかと推測しています。これをきれいにする方法はありますか?TRIM()、REPLACE、()などを試しましたが、すべて役に立ちませんでした。

更新: MySQL フィールドをクリックし、矢印キーを使用して文字間を移動すると、@ 記号を超えて移動するには矢印キーを 2 回押す必要がありますが、表示されるスペースがないことがわかりました。

4

3 に答える 3

1

これはおそらく改行なしスペース (ascii 160) のようなものです。それを取り除くには:

UPDATE my_table SET e_mail = REPLACE(e_mail, CHAR(160), '');
于 2013-10-03T20:14:04.830 に答える
1

このサンプル コードを作成しました。

<?php

 $test = "user @mail.com";
 $aux = explode("@",$test);

 $mailok = trim($aux[0])."@".trim($aux[1]);
 echo $test."     vs  ".$mailok;   

?>
于 2013-10-03T20:00:50.567 に答える
0

foreach サイクルを試し、文字列内のすべての文字に対して chr($char) 関数を実行すると、文字列内の各文字の ASCII コードが表示され、間違った文字が見つかります。それが私が見つけた唯一の解決策です。役に立つことを願っています

于 2013-10-03T19:55:00.273 に答える