Problème insertion de texte dans une chaine au contenu variable

Résolu/Fermé
ArnaudP3333x33 Messages postés 17 Date d'inscription jeudi 31 décembre 2015 Statut Membre Dernière intervention 9 juin 2018 - 31 janv. 2016 à 19:38
 ArnaudP3333x33 - 11 févr. 2016 à 11:16
Bonjour à tous,
je rencontre un problème sur un script et après plusieurs tentatives, je sèche...
Je cherche à insérer du texte au milieu d'une chaine qui a un contenu en partie variable.

Voici ma chaine,c'est un extrait d'un email en multipart/alternative contenant une partie en texte et une en html.
Attention, le texte indiqué est un exemple, il est variable, c'est le contenu d'un email. Le seules références fixes sont les entêtes.

$body = '
 
--Apple-Mail=_7E54A979-E778-4C90-9208-896BFD2E854D
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii
 
texte message
Cordialement.
 
nom prenom
 
// texte à insérer ici
 
--Apple-Mail=_7E54A979-E778-4C90-9208-896BFD2E854D
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=utf-8
<html>
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>
<body>	
texte message<br>
Cordialement.<br><br>
Antoine
</body>
</html>
 
--Apple-Mail=_7E54A979-E778-4C90-9208-896BFD2E854D--
 
';


Je souhaiterais pouvoir insérer du texte sous le texte "nom prenom" dans la partie texte, genre :
$signature="Email envoyé par domaine.com";


J'ai essayé avec str_replace, de prendre entre les --Apple-Mail, mais rien n'y fait...
Si quelqu'un aurait une idée sur une approche se serait fantastique ! je rappel que le texte en exemple "texte message Cordialement nom prenom" est variable, il ne peut donc pas être pris en référence dans le code, c'est mon souci ;)

Arnaud

2 réponses

NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 326
31 janv. 2016 à 19:52
As-tue essayé la concaténation de chaine ? (opérateur . (point) )
0
ArnaudP3333x33 Messages postés 17 Date d'inscription jeudi 31 décembre 2015 Statut Membre Dernière intervention 9 juin 2018
31 janv. 2016 à 20:11
Oui, mon problème est surtout de me placer dans la chaine au bon endroit pour y insérer le texte. Si tu as une idée je suis preneur ;)
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 326
31 janv. 2016 à 20:26
Ben avec la concaténation de chaine, ça passe facilement :
'Teste'.$Variable.'Texte'
0
ArnaudP3333x33 Messages postés 17 Date d'inscription jeudi 31 décembre 2015 Statut Membre Dernière intervention 9 juin 2018
31 janv. 2016 à 21:05
Tout à fait, mais le texte est variable, il peut être beaucoup plus long, plus court, avoir d'autres mots.
Je ne sais comment me placer en fin du texte a coup sur, après "nom prenom", pour y insérer la variable signature.
0
ArnaudP3333x33 Messages postés 17 Date d'inscription jeudi 31 décembre 2015 Statut Membre Dernière intervention 9 juin 2018
31 janv. 2016 à 21:07
En fin de code, l'idée est de récupérer la variable body avec l'ensemble d'origine + le texte inséré.
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 326
31 janv. 2016 à 21:21
Tu peux aussi précéder au remplacement d'une par tie du texte, par exemple avec printf (ou ses déclinaisons fprintf (fichier) ou sprintf (retourne la valeur) )

$Var="Texte %s Texte";
$Value="123";
$Result=sprintf($Var,$Value);
0
ArnaudP3333x33 Messages postés 17 Date d'inscription jeudi 31 décembre 2015 Statut Membre Dernière intervention 9 juin 2018
Modifié par ArnaudP3333x33 le 31/01/2016 à 23:00
Tout à fait, c'est l'idée que je veux utiliser, mais je ne sais comment mettre le texte dans la variable $Var de ton exemple. C'est ça mon souci.

Comment mettre la portion de texte suivante, contenue dans le body (voir le premier message), dans une variable ?


texte message
Cordialement.

Antoine


En fait mon problème se résume à ça, après je saurais le concaténer ou l'insérer je pense.
0