Je suis sûr que quelqu'un a déjà posé cette question, mais après avoir cherché plus de 1 heure sur google, j'ai décidé de poser ma question ici.question Preg match
Je souhaite parcourir un tableau contenant des chaînes/textes différents. Ces textes contiennent des chaînes à la fois ## valuetoreplace ## et # valuetoreplace #
Je veux faire à preg_matches:
$pattern = '/^#{1}+(\w+)+#{1}$/';
if(preg_match($pattern, $value, $matches, PREG_OFFSET_CAPTURE))
{
// do something with the #values#
}
ET
$pattern = '/^#{2}+(\w+)+#{2}$/';
if(preg_match($pattern, $value, $matches, PREG_OFFSET_CAPTURE))
{
//do something with the ##value##
}
Cela fonctionne très bien. Maintenant, mon seul problème est la suivante:
Quand j'ai une chaîne comme
$valueToMatch = 'proceding text #value#';
Mon preg_match Je ne trouve pas plus ma valeur (comme je l'ai utilisé un^et $). Question: comment puis-je trouver le #value#
et le ##value##
, sans avoir à s'inquiéter si ces mots sont au milieu d'une valeur (multiligne)?
* En outre: Ce que je veux est de trouver des modèles et remplacer le # valeur # avec une valeur de DB et un ##value##
avec une valeur de tableau. Par exemple:
$thingsToReplace = 'Hello #firstname# #lastname#,
How nice you joined ##namewebsite##.';
devrait être
'Hello John Doe,
How nice you joined example.com.'
Que voulez-vous dire par * sans avoir à vous inquiéter si ces mots sont au milieu d'une valeur (multiligne) *? Est-ce que vous * voulez * trop de lignes ou pas? –