De dump zonder date, bevat mij dus helemaal geen datum, daar gaat vraag dus over hier
$result is de variable uit de header zonder non -ascii tekens
Zonder de non ascii doe ik de str pos
preg_replace is het verwijderen van de non-ascci tekens
de eerste 9 dagen heb je 15 tekens en een spatie, daarna 16 werkt dus hele maand
Bedankt voor de preg_match, ook hier, als er toevallig in de body van de mail "Date:" zou staan, werkt dit ook niet meer
Mijn regex zoekt naar een stuk tekst dat begint met "Date: " maar per se gevolgd door "Mon, 01 Nov 9999"
of andere letters, danwel andere cijfers.
Als je met strpos() alleen maar zoekt naar "Date: " en er daarna vanuit gaat dat de daarop volgende 16 tekens de datum zijn, kún je net een andere "Date: " treffen.
Maar wat is het bezwaar tegen de non-ascii tekens? In elk geval voor het zoeken naar de datum lijkt met dat niet nodig.
[size=xsmall]Toevoeging op 31/10/2023 16:40:56:[/size]
a) kun je de datum eens proberen te vinden in $result ipv $var?
b) wat als je een letter u toevoegt?
dus ipv
$result = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $var);
maak je ervan
$result = preg_replace('/[\x00-\x1F\x80-\xFF]/u', '', $var);
en staat er wel een datum in de oorspronkelijke msg file?
[size=xsmall]Toevoeging op 01/11/2023 09:50:14:[/size]
mijn debugvolgorde zou zijn:
1) bekijke de msg file die mislukt eerst in notepad oid
2) MimeMessage is kennelijk https://github.com/php/pecl-mail-mailparse/blob/master/mailparse.c
Daar kun je niet veel aan debuggen.
3) $var zou de headers moeten bevatten van je msg. Is dat gevuld met iets? zit daar de datum ook bij?
4) $result: om een of andere reden wil je sommige ascii tekens (ascii code 250 is nog steeds ascii hoor) kwijt
doet dat wat je verwacht en niet te veel? klopt wat in $result zit nog steeds
5) daarna ga je zoeken. Ofwel met mijn regex, ofwel met strpos.
5a) strpos(): wat is $pos? is dat niet FALSE (= niet gevonden); $ppp: klopt de inhoud van $ppp met wat je verwacht?
6) strtotime(): begrijpt strtotime in dit geval de datum? Is er iets bijzonders met de datumstring? bijvoorbeeld dat de spatie achter : onbreekt, of dat er een extra Enter is, of dat de naam van de dag in het Frans is.
Elke Message heeft welzeker een datum als ik deze bekijk.
Als het php scripthe geen datum vind, dan staat deze ook niet in de dump van de variabele $var of result. Dat is snel gecheckt.
Dus het ligt er niet aan hoe de datum eruit gehaald zou moeten worden
Met dank