PHP:无效字符串让我无法正确比较它

时间:2011-11-07 22:22:44

标签: php imap

由于某种原因,在数组中生成了一个非常奇怪的字符串,我不知道如何处理它...我正在获取字符串并使用以下代码输出它:

    $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) 
当它应该是真的时,

给我假。有任何想法吗?谢谢!

更新:修剪无效。

3 个答案:

答案 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'] ) );