Interesting that imap_headerinfo() does not allow a UID for the $msg_number field like all other fetching functions seem to allow.
If you want to use a UID to fetch the headers, use this two-step process:
<?php
/*
* assumes $mbox is your stream, and $uid is set
* properly. Proper error checking is up to you.
*/
$hText = imap_fetchbody($mbox, $uid, '0', FT_UID);
$headers = imap_rfc822_parse_headers($hText);
?>
The result is the same as the output of imap_headerinfo(), but you get to use the UID.
PHP.mk документација
imap_fetchheader
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.imap-fetchheader.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.imap-fetchheader.php
imap_fetchheader
Референца за `function.imap-fetchheader.php` со подобрена типографија и навигација.
imap_fetchheader
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_fetchheader — Враќа заглавие за порака
= NULL
Оваа функција предизвикува преземање на целосно, нефилтрирано Враќа правилно форматирана адреса на е-пошта како што е дефинирано во формат на заглавието на наведената порака.
Параметри
-
imap Еден IMAP\Connection instance.
message_num-
Број на пораката
flags-
Можните
flagsсе:-
FT_UID- Наmessage_numаргументот е UID -
FT_INTERNAL- Вратениот стринг е во „внатрешен“ формат, без никаков обид за канонизирање на CRLF нови редови -
FT_PREFETCHTEXT- RFC822.TEXT треба да се преземе истовремено. Ова избегнува дополнително RTT на IMAP врска ако е посакуван целосен текст на пораката (на пр. во операција „зачувај во локална датотека“)
-
Вратени вредности
Враќа заглавие на наведената порака како текстуален стринг, или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На imap параметарот очекува IMAP\Connection
инстанца сега; претходно, валидна imap resource се очекуваше.
|
Види Исто така
- imap_fetch_overview() - Прочитајте преглед на информациите во заглавијата на дадената порака
Белешки од корисници 2 забелешки
rgagnon24 dot nospam at gmail dot com ¶
пред 15 години
Jille at nomorecrap dot quis dot cx ¶
пред 17 години
<?PHP
$headers=imap_fetchheader($imap, $msgid);
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)\r\n/m', $headers, $matches);
?>
Works quite well for splitting headers,
$matches will contain 3 arrays:
$matches[0] are the full-lines (To: [email protected]\r\n)
$matches[1] will be the header (To)
$matches[2] will be the value ([email protected])
In multi-line values the 'multilining is not stripped!'
this could be achieved with something like:
<?PHP
preg_replace('/\r\n\s+/m', '', $matches[2]);
?>