由于某种原因,在数组中生成了一个非常奇怪的字符串,我不知道如何处理它...我正在获取字符串并使用以下代码输出它:
$server = '{imap.gmail.com:993/ssl}';
$connection = imap_open($server, 'myuser', 'mypass');
$count = imap_num_msg($connection);
$header = imap_headerinfo($connection, $i);
for($i = 1; $i <= $count; $i++) {
$from = $header['fromaddress'];
var_dump($from);
}
这是我从var_dump得到的结果:
string(39) "Support Testing1"
怎么可能?是否有任何方法可以将其转换为正确的字符串(我的意思是,使用正确的长度?)
这影响了我的代码,因为现在:
echo ('Support Testing1' == $from)
当它应该是真的时,给我假。有任何想法吗?谢谢!
更新:修剪无效。
答案 0 :(得分:3)
我最好的猜测是$header['fromaddress']
真的像
"Support Testing1" <blah@example.com>
并且您在var转储中看不到电子邮件地址,因为浏览器将其视为HTML标记。
如果是这样,那么您需要删除<...>
,也可能删除双引号。
您可以尝试查看源HTML进行确认。
答案 1 :(得分:0)
尝试:
$from = trim($header['fromaddress']));
两端可能都有隐藏的空白字符。
答案 2 :(得分:0)
错误的长度可能是编码问题!
尝试:
var_dump( utf8_decode( $header['fromaddress'] ) );