imap_search 找到的电子邮件的顺序是什么?
What is the order of the e-mails found by imap_search?
我正在使用 imap_search 从邮箱中检索所有电子邮件。
参见:http://php.net/manual/en/function.imap-search.php
可以安全地假设 imap_search() 检索按日期排序的电子邮件,最早的在前吗?从我的测试来看确实如此,但我找不到任何关于实际订购的文档。
如果按日期排序,您可以使用 array_reverse() 和 array_splice() 获取最新的 10 个左右。
示例代码:
<?php
$conn = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);
$msgnos = imap_search($conn, 'ALL');
?>
与其假定文档中未指定的顺序(因此可能会在任何版本中更改),不如对其进行排序:
imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NULL ]]] ) : array
Gets and sorts message numbers by the given parameters.
它甚至接受 search_criteria 并允许您在同一个调用中反转它。
我正在使用 imap_search 从邮箱中检索所有电子邮件。
参见:http://php.net/manual/en/function.imap-search.php
可以安全地假设 imap_search() 检索按日期排序的电子邮件,最早的在前吗?从我的测试来看确实如此,但我找不到任何关于实际订购的文档。
如果按日期排序,您可以使用 array_reverse() 和 array_splice() 获取最新的 10 个左右。
示例代码:
<?php
$conn = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);
$msgnos = imap_search($conn, 'ALL');
?>
与其假定文档中未指定的顺序(因此可能会在任何版本中更改),不如对其进行排序:
imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NULL ]]] ) : array
Gets and sorts message numbers by the given parameters.
它甚至接受 search_criteria 并允许您在同一个调用中反转它。