PHP / MySQL:从MySQL数据库回显变量时出现奇怪的输出问题

时间:2013-10-03 19:47:30

标签: php mysql sql

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

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

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

3 个答案:

答案 0 :(得分:1)

我为你制作了这个示例代码:

<?php

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

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

?>

答案 1 :(得分:1)

这可能就像不间断的空间(ascii 160)。摆脱它:

UPDATE my_table SET e_mail = REPLACE(e_mail, CHAR(160), '');

答案 2 :(得分:0)

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