(PHP 4 >= 4.1.0, PHP 5)
imap_thread() returns an associative array containing a tree of messages threaded by REFERENCES, or FALSE on error.
Every message in the current mailbox will be represented by three entries in the resulting array:
$thread["XX.num"] - current message number
$thread["XX.next"]
$thread["XX.branch"]
Пример 1. imap_thread() Example
<?php // Here we're outputting the threads of a newsgroup, in HTML $nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', ''); $threads = imap_thread($nntp); foreach ($threads as $key => $val) { $tree = explode('.', $key); if ($tree[1] == 'num') { $header = imap_headerinfo($nntp, $val); echo "<ul>\n\t<li>" . $header->fromaddress . "\n"; } elseif ($tree[1] == 'branch') { echo "\t</li>\n</ul>\n"; } } imap_close($nntp); ?>
One possible option to imap_thread is the constant SE_UID, which will make imap_thread return UIDs instead of sequence numbers in the x.num-fields of the returned array.