PHP: неверная строка не позволяет мне сравнивать ее правильно - PullRequest
1 голос
/ 08 ноября 2011

По какой-то причине внутри массива создается действительно странная строка, и я не знаю, как с ней обращаться ... Я получаю строку и выводю ее с помощью следующего кода:

    $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 ]

3 голосов
/ 08 ноября 2011

Мое лучшее предположение, что $header['fromaddress'] действительно что-то вроде

"Support Testing1" <blah@example.com>

И вы не видите адрес электронной почты в дампе var, потому что браузер обрабатывает его как тег HTML.

Если это так, то вам нужно удалить <...> и, возможно, двойные кавычки.

Вы можете попробовать просмотреть исходный HTML для подтверждения.

0 голосов
/ 08 ноября 2011

Неправильная длина, вероятно, зависит от кодировки!

Попробуйте:

var_dump( utf8_decode( $header['fromaddress'] ) );
0 голосов
/ 08 ноября 2011

Попробуйте:

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

На обоих концах могут быть скрытые пробельные символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...