[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск русского заголовка через imap_search
nickolik
Добрый день!
Столкнулся с тем что не могу найти русского заголовка через imap_search, пробовал баловаться с кодировками, но безрезультатно. Может уже кто сталкивался с таким?

<?php
$username = 'user@gmail.com'
$password = 'user_pass'
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$mbox = imap_open($hostname, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());
$fol = imap_search($mbox,'SUBJECT "Импорт контактов и старых писем"'); // не ищет
$fol = imap_search($mbox,'SUBJECT "Google"'); // находит письма
for ($i=0; $i<count($fol); $i++) {
echo "Match found in number: $fol[$i]<BR>\n";
$u = $fol[$i];
echo $u;
}
$str = imap_body($mbox, $u);
echo mb_convert_encoding($str, "UTF-8", "Base64");
?>





Спустя 2 дня, 18 часов, 23 минуты, 54 секунды (18.06.2012 - 10:09) nickolik написал(а):
Возможно надо передать кодировку в поиске.
array imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NIL ]] )

Но указание кодировкаи не очень то и спасает. Но может я не то делаю??
Вот пример кода:
$te =  mb_convert_encoding("Импорт контактов и старых писем", "KOI8-R", "windows-1251");
$fol = imap_search($mbox,'SUBJECT "'.$te, KOI8-R);


Спустя 2 дня, 1 час, 50 минут, 15 секунд (20.06.2012 - 12:00) nickolik написал(а):
Решил сам.
Пропустил параметр int $options = SE_FREE
Рабочий код выглядит вот так

$te =  mb_convert_encoding("Импорт контактов и старых писем", "KOI8-R", "windows-1251");
$fol = imap_search($mbox,'SUBJECT ".$te."',SE_UID,'UTF-8');
for ($i=0; $i<count($fol); $i++) {
echo "Match found in number: $fol[$i]<BR>\n";
echo $fol[$i];

$str = imap_body($mbox, $fol[$i], FT_UID);
echo mb_convert_encoding($str, "UTF-8", "Base64");
}
?>

Всем спасибо! :P
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.