webForumDet fria alternativet

Regex

PHP

2 svar · 361 visningar · startad av joksi

Medlem sedan jan. 20068 inlägg
Frågan#1

Tjena

Jag behöver parsa ett email från på en server,för att plocka ut en viss del, och vad ja förstått går det bara att göra med sk. regular expressions. HAr sökt runt och tycker det verkar väääldans krångligt. Har ngn lust o jälpa mig på vägen så ja har något att utgå ifrån?

Det jag vill plocka ut ur mailet och skriva till en ny textfil,mailet ser ungefär ut så här:

------=_NextPart_000_0003_01C63ED5.52D0F560
Content-Type: image/jpeg;
name="2121.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="2121.jpg"

//BÖRJAN
q1jaOC5miRmVmVHKgkZ2kgdxk4+pqJQu0+wI0fGV0LzxLeS7JkfcElWVdrCRVCuMf7wOPbHSsiii
qSsrAFFFFMAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==
osv. osv.
//SLUT

------=_NextPart_000_0003_01C63ED5.52D0F560--

Allt som dyker upp mellan //BÖRJAN o //SLUT vill jag skriva till en ny textfil alltså. Hur skulle en sån regular expression kunna se ut må tro??

Medlem sedan juni 20031 837 inlägg
#2
$match = array();
// $mail innehåller mailet.
if(preg_match("/\/\/BÖRJAN(.*)\/\/SLUT/s", $mail, $match))
{
  // write $match[1] to file
}
Medlem sedan maj 2005562 inlägg
#3

Fast jag antar att //BÖRJAN och //SLUT inte står där i filen från början ??

$contents = file_get_contents( $filename);

preg_match( "|filename=\"([\w.]*)\"[\n]+(.*)[\n]+------=_Next.*|s", $contents, $match);
$filnamnAttSkrivaTill = "temp.txt";
$fh = fopen($filnamnAttSkrivaTill, "w");
fwrite($fh, $match[2]);
fclose($fh);
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)