[PHP] Email Attachment boundary RegEx

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • FunzoneQ!
  • Registratie: Oktober 2002
  • Laatst online: 15-11-2024
Hallo,

ik heb de search al gebruikt, maar kon niets bruikbaars vinden (alleen veel mensen die attachments willen verzenden ;)).

Ik ben bezig met een email parse script. Nu wil ik de attachments parsen. De attachments staan binnen boundary's die ik netjes via een regEx heb verkregen, alleen staan de attachments over meerdere regels. Dit vind mijn regEx blijkbaar niet leuk, want als ik hem op 1 regel zet doet hij het wel gewoon.

Hoe kan ik mijn regex aanpassen zodat hij op meerdere regels checkt (heb al in verscheidene regex manuals gekeken, maar daarin kan ik ook niets vinden.

dit is mijn regex nu:
PHP:
1
$regEx = '/'.addslashes($ret[$T]['boundary']).'(.*?)'.addslashes($ret[$T]['boundary']).'/';


en dat komt er dan zo uit te zien

code:
1
/------------080804060603090600040309(.*?)------------080804060603090600040309/


wanneer ik deze test string gebruikt gaat het goed:

PHP:
1
$test = "------------080804060603090600040309 Content-Type: image/jpeg; ------------080804060603090600040309";


maar wanneer ik deze op meerdere regels zet gaat het fout..

PHP:
1
2
3
$test = "------------080804060603090600040309
Content-Type: image/jpeg;
------------080804060603090600040309";


Enig idee hoe dit komt?

Bla


Acties:
  • 0 Henk 'm!

  • Arjan A
  • Registratie: November 2000
  • Laatst online: 12:24

Arjan A

Cenosillicafoob

Multiline aanzetten doe je met de 'm'. (http://nl.php.net/manual/en/pcre.pattern.modifiers.php)
In jouw voorbeeld komt het er dan zo uit te zien:
PHP:
1
$regEx = '/'.addslashes($ret[$T]['boundary']).'(.*?)'.addslashes($ret[$T]['boundary']).'/m';

m toegevoegd aan het eind.

Canon EOS | DJI M2P
Fotoblog · Mijn werk aan jouw muur


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

multiline is wat anders dan de naam zou vermoeden en is hier ook niet de oplossing; wat je nodig hebt is de s-modifier (PCRE_DOTALL); zie http://nl2.php.net/manual/en/pcre.pattern.modifiers.php

Intentionally left blank