2017-06-29 1 views
1

J'ai besoin de cibler indépendamment de la casse et les sous-chaînes envelopper dans <strong></strong> tags:Comment faire pour envelopper des sous-chaînes nommées dans les balises html?

Exemple:

$q = $_GET['q']; 
echo "abcdefABCDEF"; 

Si je recherche "a" (exemple: index.php? Q = a), la sortie enhardir la toutes les occurrences de « a » et « a » comme ceci:

<strong>a</strong>bcdef<strong>A</strong>BCDEF 

Comment puis-je insérer ces balises dans la chaîne?

+0

* « Comment je le fais en PHP? » *: La première étape consiste à faire des recherches et d'essayer quelque chose. –

+0

Dans cet exemple simple, vous n'avez pas besoin de regex. Et pour la plupart des cas, vous ne devriez pas en avoir besoin. – Aknosis

Répondre

3

Vous pouvez le faire comme ceci:

$q = 'o'; 
$original_string = 'Lorem Ipsum dolor sit amet.'; 

echo str_ireplace($q, '<strong>' . $q . '</strong>', $original_string); 
0

Considérant en utilisant preg_replace() si vous avez l'intention de rechercher et remplacer le contenu avec des balises HTML. Vous trouverez qu'il est plus puissant que str_ireplace()

echo preg_replace('/([aA])/', '<strong>$1</strong>', $_GET['q']); 
+4

Notez que la réponse de Martin est plus simple (et plus rapide). En aparté, vous n'avez pas besoin d'utiliser un groupe de capture, vous pouvez vous référer à toute la correspondance avec '$ 0' dans la chaîne de remplacement. Vous pouvez également utiliser le modificateur insensible à la casse i: '/ a/i' –

+0

@Julio Cesar Les expressions régulières sont ce que vous voulez vraiment apprendre lors de la recherche et du remplacement. Voir [preg_replace()] (http://php.net/manual/fr/function.preg-replace.php) –

+2

Vraiment? <°))))))))))))> –