2011-11-07 39 views
1

真的很奇怪的字符串正在出於某種原因在數組內生成,我不知道如何處理它...我得到字符串並輸出它與下面的代碼:PHP:無效的字符串不讓我比較正確

$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

'trim($ header ['fromaddress'])== $ header ['fromaddress']'? – greg0ire

+0

你可以從你的代碼中多提一點嗎? – bksi

+0

這個問題的背景是什麼?看起來它是關於一個PHP郵件腳本? –

回答

3

我最好的猜測是,$header['fromaddress']真的像

"Support Testing1" <[email protected]> 

而且你看不到的電子郵件地址在var轉儲,因爲瀏覽器將它像一個HTML標記。

如果是這樣,那麼你需要刪除<...>,也可能是雙引號。

您可以嘗試查看源HTML來確認。

0

嘗試:

$from = trim($header['fromaddress'])); 

有可能會被隱藏在兩端的空白字符。

+0

謝謝,但仍然得到相同的結果... – luqita

0

錯誤的長度可能是編碼問題!

嘗試:

var_dump(utf8_decode($header['fromaddress']));