| |
|
|
| | Помогите сделать постраничная навигацию для почты.
Вот скрипт вывода Списка сообщений из imap сервера.
<?php
echo ("<table width=\"100%\" border=\"1\">");
echo ("<tr>");
echo ("<td>Статус</td>");
echo ("<td>Отправитель</td>");
echo ("<td>Тема</td>");
echo ("<td>Принято</td>");
echo ("<td>Размер</td>");
echo ("</tr>");
$mbox = imap_open("{domen.ru/imap:143}", "user", "pass");
if(!$mbox) exit("Не могу соединиться с imap сервером: " . imap_last_error());
echo "Всего сообщений - ".imap_num_msg($mbox)."<br>";
$i=1;
while($i <= imap_num_msg($mbox)) {
$obj = imap_headerinfo($mbox, $i++);
$arr = imap_mime_header_decode($obj->Subject);
$fromname = imap_mime_header_decode($obj->fromaddress);
$msg_date = gmstrftime("%d %m %Y", strtotime($obj->Date));
echo ("<tr>");
echo ("<td>".$obj->Unseen." </td>");
echo ("<td>".convert_cyr_string($fromname[0]->text,$fromname[0]->charset,"w")."</td>");
echo ("<td>".convert_cyr_string($arr[0]->text,$arr[0]->charset,"w")."</td>");
echo ("<td>".$msg_date."</td>");
echo ("<td>".round(($obj->Size/1000),1)."КБ</td>");
echo ("</tr>");
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: brys
(24.04.2007 в 10:08)
| | |
<?php
echo ("<table width=\"100%\" border=\"1\">");
echo ("<tr>");
echo ("<td> N </td>");
echo ("<td>Статус</td>");
echo ("<td>Отправитель</td>");
echo ("<td>Тема</td>");
echo ("<td>Принято</td>");
echo ("<td>Размер</td>");
echo ("</tr>");
$mbox = imap_open("{domen.ru/imap:143}", "user", "pass");
//$mbox = imap_open("{pop3.relay.srv/pop3}INBOX", "user", "pass");
if(!$mbox) exit("Cannot connect to imap server: " . imap_last_error());
$anum = imap_num_msg($mbox);
echo "Messages total: $anum";
$from= isset($_GET['f'])? intval($_GET['f']): 1;
$num = isset($_GET['n'])? intval($_GET['n']): 5;
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));
//print_r($obj); print_r($arr);
echo ("<tr>");
echo ("<td> ".($i+$from)." </td>");
echo ("<td>".$obj->Unseen." </td>");
echo ("<td> ". @convert_cyr_string($fromname[0]->text,$fromname[0]->charset,"w")."</td>");
echo ("<td> ". ($arr === ''? '' : convert_cyr_string($arr[0]->text,$arr[0]->charset,"w"))."</td>");
echo ("<td>".$msg_date."</td>");
echo ("<td>".round(($obj->Size/1024),1)."Kb</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";
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(24.04.2007 в 12:25)
| | | Trianon спасибо. все очень доступно.
Случайно не знаешь как сортировку по дате сделать? | |
| |
|
|
| |
|
|
| |
для: brys
(24.04.2007 в 14:47)
| | | сбором ключей и элементов заголовка в массив и сортировкой этого массива функцией usort | |
| |
|
|
| |
|
|
| |
для: Trianon
(24.04.2007 в 14:54)
| | | А можешь показать простой пример применения функции usort | |
| |
|
|
| |
|
|
| |
для: brys
(24.04.2007 в 16:55)
| | | (пожав плечами) http://ru2.php.net/usortПример 2 | |
| |
|
|
| |
|
|
| |
для: Trianon
(24.04.2007 в 17:03)
| | | Вот пример с php.net Тут мне все понятно кроме того как изменить сортировку. подскажи. как правильно задать свойство usort сортировки.
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}
echo ("<pre>");
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
|
| |
| |
|
|
| |
|
|
| |
для: brys
(24.04.2007 в 17:16)
| | | Функция cmp будет применяться для сравнения пар элементов при отределении их порядка.
Она должна вернуть отрицательное число, если первый элемент нужно пропустить вперед списка, и положительное, если первый элемент нужно расположить позже второго. Функция дожна вернуть ноль, если считает, что ей подсунули одинаковые элементы. | |
| |
|
|