Сортировка imap_sort

  • Автор темы Автор темы qwelp
  • Дата начала Дата начала

qwelp

Новичок
Сортировка imap_sort

Не как не могу правильно использовать функцию imap_sort. Знающие люди подскажите.

PHP:
<?php
$anum = imap_num_msg($mbox);
echo "Писем: $anum";
$from= isset($_GET['f'])? intval($_GET['f']): 1;
$num = isset($_GET['n'])? intval($_GET['n']): 20;

$sort = imap_sort($mbox, SORTARRIVAL, true);
for($i=0; $i < $num && $i+$from <= $anum; $i++ )
{

$obj = imap_headerinfo($mbox, $i+$from);
$arr = isset($obj->Subject)? imap_mime_header_decode($obj->Subject) : '';
$fromname = imap_mime_header_decode($obj->fromaddress);
$msg_date = gmstrftime("%d %m %Y", strtotime($obj->Date));
$froms = $obj->from;
echo ("<tr>");
echo ("<td> ".($i+$from)." </td>");
echo ("<td>".$obj->Unseen."&nbsp;</td>");
echo ("<td><b> ". @convert_cyr_string($fromname[0]->text,$fromname[0]->charset,"w")."</b>&nbsp;&nbsp; ".$froms[0]->mailbox."@".$froms[0]->host."</td>");
echo ("<td><a href=\"messages.php?id=".($i+$from)."\">". ($arr === ''? '' : convert_cyr_string($arr[0]->text,$arr[0]->charset,"w"))."</a></td>");
echo ("<td>".$msg_date."</td>");
echo ("<td>".round(($obj->Size/1000),1)."КБ</td>");
echo ("</tr>\r\n");
}
echo ("</table>\r\n");
for($i = 0; $i < $anum; $i+=$num)
echo "<a href=?f=".($i+1)."&n=$num>".($i+1)."..".min($anum,$i+$num)."</a>\r\n";



echo ("<pre>");
print_r ($sort);
?>
 
Надо отсортировать в обратном порядке, чтобы последнии пришедшие письма были в начале списка.

Вот этой функцией.

Код:
$sort = imap_sort($mbox, SORTARRIVAL, true);

вывожу print_r ($sort); сортирует как надо.

Не могу разобраться как заставить этим сортировать массив imap_headerinfo
 
В том и дело что я не знаю как использовать функцию и в коде не где не используется. print_r($sort) сделал для просмотра порядка сортировки. он к коду не относиться.
 
qwelp
Возвращаемые значения
Returns an array of message numbers sorted by the given parameters.
Тебе уже возвращается массив отсортированных по заданному тобой критерию сообщений. С ним и работай, а не
PHP:
$anum = imap_num_msg($mbox);
 
Что сделать я понимаю. а как это реализовать. вот в чем проблема
 
а ты подумай.
сначала отдохни, потом снова подума. попробуй так и эдак.
ещё подумай.
и все у тебя получится.

все программисты, поголовно, этим занимаются.
займись и ты.

а то как-то даже смешно получается.
веб-интерфейс нужен тебе, а пишут его совсем другие люди.
 
Фанат "Очень помог"......

веб-интерфейс нужен тебе, а пишут его совсем другие люди.

Не согласен с тобой. Пишу я. мне помогли разобраться в ключевых моментах(за что большое спасибо). теперь все это легко напишу без помощи. Осталось всего пару моментов :). + с помощью созданных постов многие с легкостью разберутся в процессе создания почтового интерфейса и не будут задавать лишних вопросов, воспользовавшись лишь поиском по форуму.

Я не просил делать сортировку (не сокрою надеялся :) но как показывает практика на этом форуме этот фокус не проходит, зато подталкивают на правильное решение ).
Может кто пример покажет.
На php.net все примеры с foreach и нет примера с for поэтому и прошу помочь разобраться. Тем более на форуме нет тем про функцию imap_sort. Один раз обсудим и больше этого вопроса не возникнет.
 
при чем здесь foreach и for?
ни один из этих операторов ничего не сортирует.
у тебя проблема с сортировкой или с чем?

"Очень помог"......
чувак.
уясни себе очень простую мысль.
Здесь не армия спасения. и не платная служба поддержки.
и не твоя бабушка, которая любит тебя бескорыстно, и которой ты можешь бросить саркастическое "спасибо, бабуля, помогла!".
Не нравится моя помощь? Никто не держит, интернет большой!
Впредь держи, пожалуйста, свое мнение по поводу качества помощи при себе.

Ключевая мысль моего поста была в том, что я, например, когда сталкиваюсь с проблемой, сто сажусь и решаю её. А не бегу на форум, чтобы мне её решили.
И рекомендую тебе поступить точно так же.
Если что-то не получается - это не повод задирать лапки кверху. Это повод сесть, и решать проблему. Это твоя работа.

-~{}~ 02.05.07 17:41:

На php.net все примеры с foreach и нет примера с for
КАКОЙ КОШМАР!
все - туши свет, сливай воду, пхп на свалку.

А САМ себе пример написать не пробовал? Тестовый скрипт, чтобы разобраться с for?
Все примеры тебе должен дядя сделать, а сам ты беспомощный младенец?
 
На php.net все примеры с foreach и нет примера с for поэтому и прошу помочь разобраться.
Эх...а уже почтовый интерфейс пытаешься сделать.

-~{}~ 02.05.07 20:49:

ем более на форуме нет тем про функцию imap_sort.
Открою тебе секрет, на этом форуме пока не для всех функций PHP есть свои темы.
 
"Очень помог"......
Чувак.
К тому что не хочешь помогать. зачем писать ответ?
и много бредятины ты в последним посте написал
(по себе людей не судят).

при чем здесь foreach и for?
Как я понимаю что сортировать надо цикл..

-~{}~ 02.05.07 17:56:

Эх...а уже почтовый интерфейс пытаешься сделать.
хороший способ затронуть многие моменты php
 
хороший способ затронуть многие моменты php
"Тренируйся лучше на кошках", - "Операция Ы и другие приключения Шурика".
Попробуй начать с простого...напиши гостевую..а там уже как пойдёт.
 
хм интересно а как цикл можно отсортировать?!
for($i=0; $i < $num && $i+$from <= $anum; $i++ )

-~{}~ 02.05.07 20:17:

Дело в том что отсортировать я могу
вот так
Код:
$arr=imap_sort($mbox,SORTDATE,1,SE_UID); 
$obj=imap_headerinfo($mbox,imap_msgno($mbox,$arr[0]));

Но у меня уже есть 1 парамтр сортировки. Вот:
Код:
$obj = imap_headerinfo($mbox, $i+$from);

не могу применить. второй параметр

-~{}~ 02.05.07 20:22:

Получилось. Кому интересно вот код:
Код:
for($i=0; $i < $num && $i+$from <= $anum; $i++ )
{

$sort = imap_sort($mbox,SORTDATE,1,SE_UID); 
$obj = imap_headerinfo($mbox, imap_msgno($mbox,$sort[$i]), $i+$from);
$arr = isset($obj->Subject)? imap_mime_header_decode($obj->Subject) : '';
$fromname = imap_mime_header_decode($obj->fromaddress);


$msg_date = gmstrftime("%d %m %Y", strtotime($obj->Date));
$froms = $obj->from;
echo ("<tr>");
echo ("<td> ".($i+$from)." </td>");
echo ("<td>".$obj->Unseen."&nbsp;</td>");
echo ("<td><b> ". @convert_cyr_string($fromname[0]->text,$fromname[0]->charset,"w")."</b>&nbsp;&nbsp; ".$froms[0]->mailbox."@".$froms[0]->host."</td>");
echo ("<td><a href=\"messages.php?id=".($i+$from)."\">". ($arr === ''? '' : convert_cyr_string($arr[0]->text,$arr[0]->charset,"w"))."</a></td>");
echo ("<td>".$msg_date."</td>");
echo ("<td>".round(($obj->Size/1000),1)."КБ</td>");
echo ("</tr>\r\n");
}
 
попробуй прочитать свое сообщение со стороны, к будто бы если не ты его писал.
и ответь себе на вопрос - его вообще можно понять?

в ответ на вопрос, как можно отсортировать цикл - какой-то невнятный кусок кода, который не объясняет, как можно отсортировать действие.

какой-то второй параметр, который к сортировке не имеет отношения, и втыкается ,почему-то не в функцию сортировки.

что такое, по-твоему, означает понятие "сортировка"? Похоже, что ты называешь этим словом что-то другое.

-~{}~ 02.05.07 20:25:

слава тебе господи.
все-таки, последовал моему совету.
значит, не безнадежен
 
Сверху