0

我有一个包含姓名和电子邮件地址的 MySQL 表。数据最初是从 .csv 文件导入的,最初并不包含完整的电子邮件地址。我们必须将@place.domain 附加到用户的别名。

当数据位于 MySQL 表中时,它看起来很正常:person@place.domain;但是,当我在 PHP 中输​​出内容时,我得到了这个:person @place.domain。人和@之间总是有一个空格。在 MySQL 列中看起来不像,当我将数据复制/粘贴到记事本、Word、Excel 等时也不像那样。此外,如果我删除列中的数据并手动将其替换为 person @place.domain,它在我的 PHP 应用程序中正常显示。所以我猜有一些我无法检测到的 PHP 正在拾取的隐藏字符。有没有办法让我清理这个?我试过TRIM()、REPLACE、()等,都无济于事。

更新:我发现,当我单击 MySQL 字段并使用箭头键在字符之间移动时,我必须按两次箭头键才能移过 @ 符号,但没有可见空间。

4

3 回答 3

1

I made this sample code for you:

<?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 回答
1

这可能类似于不间断空间(ascii 160)。摆脱它:

UPDATE my_table SET e_mail = REPLACE(e_mail, CHAR(160), '');
于 2013-10-03T20:14:04.830 回答
0

尝试使用 foreach 循环,并对字符串中的每个字符执行 chr($char) 函数,它会显示字符串中每个字符的 ascii 代码,您会发现错误的字符。这是我找到的唯一解决方案。希望有用

于 2013-10-03T19:55:00.273 回答