Rechercher et sélectionner un terme dans une chaine

ArnaudP3333x33 -  
 ArnaudP3333x33 -
Bonjour à tous,
voilà quelques heures que je tente de faire marcher mon script en vain...

Dans une chaine qui est le contenu d'un corps d'email, je cherche à récupérer le nom du fichier en pièce jointe qui dans l'exemple s'appel "mes canditatures.txt"
Il est devant filename=" mais je bute avec le name=" en dessous pour encadrer qui est reconnu en même temps.

Ce doit être gérable j'imagine, mais je suis un peu novice, si quelqu'un pouvait m'aider, se serait terrible !

Voici la chaine que je reçois dans une variable ($body) :


$body = '
--Apple-Mail=_380D7683-C2AA-4F13-8B31-93C43592D154
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

Cordialement.

Non prenom

--Apple-Mail=_380D7683-C2AA-4F13-8B31-93C43592D154
Content-Disposition: attachment;
	filename="mes candidatures.txt"
Content-Type: text/plain;
	name="mes candidatures.txt"
Content-Transfer-Encoding: quoted-printable

ici la piece jointe en texte B64
';
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

en utilisant .preg-match et une REGEX.

https://www.php.net/manual/fr/function.preg-match.php

La regex doit être un truc du genre :
filename=\"(\w*.*)"

Exemple : https://regex101.com/r/fL9iI2/1

1
ArnaudP3333x33
 
Merci pour ta réponse, je vais me documenter un peu plus avec
J'ai effectivement trouvé mon bonheur en ce sens avec
preg_match('#filename="(.+)"#i', $body, $output);
echo $output[1];


A quoi sert le w dans ta regex ?
0