note 52640 added to function.imap-sort

From: Date: Sun, 08 May 2005 04:41:35 +0000
Subject: note 52640 added to function.imap-sort
Groups: php.notes 
Request: Send a blank email to php-notes+get-89095@lists.php.net to get a copy of this message
Hello, We used MIME and NLS libraries in our previous code(imap_locale_sort) that are part of PEAR and Horde projects, and so our function was so specific. Here is the general (pure php) code for this function: function imap_locale_sort($stream,$criteria,$reverse,$locale,$options) { if ($criteria!=SORTSUBJECT) return (imap_sort($stream,$criteria,$reverse,$options)); $unsorted = array(); $sortresult = array(); $MC=imap_check($stream); $MN=$MC->Nmsgs; $overview = imap_fetch_overview($stream,"1:$MN",0); $k=0; while( list($key,$val) = each($overview)) { $unsorted[$k]["uid"]=$val->uid; $unsorted[$k]["subject"]=imap_utf8($val->subject); $k++; } usort ($unsorted, create_function('$a,$b','setlocale(LC_ALL,$locale);return strcoll($a["subject"],$b["subject"]);')); for ($m=0;$m<count($unsorted);$m++) array_push($sortresult,$unsorted[$m]["uid"]); if ($reverse) $sortresult = array_reverse($sortresult); return $sortresult; } Sample usage: $mbox = imap_open("{localhost:143}INBOX.sent-mail","userid","password"); if ($mbox) echo ("Connection Successful!"); $sorted = imap_locale_sort($mbox,SORTSUBJECT,0,'fa_IR',0); print_r($sorted); print ("\n\n"); $sorted = imap_sort($mbox,SORTSUBJECT,SE_UID); print_r($sorted); imap_close($mbox); ---- Manual Page -- http://www.php.net/manual/en/function.imap-sort.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+52640 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+52640&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+52640&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+52640&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+52640&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+52640&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+52640&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#89095) next »