2010-10-10 4 views
1

Comment remplacer une chaîne d'une chaîne particulière? S'il vous plaît voir mon exemple ci-dessous.PHP: remplacer une chaîne d'une chaîne particulière par une chaîne particulière

$string_value="<b>Man one</b> <img src=\"http://www.abc.com/image1.jpg\">and <b>Man two</b> <img src=\"http://www.abc.com/img2.png\">"; 

Maintenant, ma vente est prévu à = <b>Man one</b> and <b>man two</b>. seule la balise d'image devrait être supprimée.

Je dois donc couper la chaîne complète de "<img" à ">" à partir de la chaîne $ string_value. Alors, comment puis-je couper la chaîne complète entre "<img" à ">" en utilisant preg_replace ou toute autre chose.

Le paramètre de remplacement doit être un espace vide.

Répondre

1

Vous pouvez utiliser des expressions régulières pour exclure les balises IMG:

<?php 
$text = "Man one <img src=\"http://www.abc.com/image1.jpg\">and Man two <img src=\"http://www.abc.com/img2.png\">"; 
$pattern = "/<img(.*?)>/i"; 
$replace = ''; 
print preg_replace($pattern,$replace,$text); 
?> 
+0

Merci, cela fonctionne, je veux ce choses.thnaks Kiselovs. – riad

1

Utilisez simplement strip_tags ($ string_value); et vous obtiendrez la sortie désirée.

+0

Merci, il works.But j'ai besoin de supprimer la balise img only.Because j'ai beaucoup d'autres balises html que je ne Mentionné sur mon exemple.so, est leur toute façon de supprimer la balise ima seulement que je mentionne ?? pls répondre – riad

+0

@riad: 'strip_tags' prend un paramètre supplémentaire qui spécifie les balises permises, il suffit de passer une chaîne contenant toutes les balises que vous voulez permettre. – casablanca

+0

@Dear kiselovs, thx. Je reçois ceci.ils ont beaucoup d'autres étiquettes htmls.so il est difficile d'inclure tous les tags.I besoin de remplacer le tag img seulement.pls m'aider à supprimer l'étiquette d'image seulement .. encore une fois .. beaucoup – riad

2

On dirait que vous voulez enlever les étiquettes.
Vous pouvez le faire facilement en appelant la fonction strip_tags qui obtient HTML et PHP étiquettes supprimées d'une chaîne donnée.

$string_value = strip_tags($string_value); 

EDIT:

Puisque vous voulez seulement enlever l'étiquette <img, vous pouvez utiliser cette function:

function strip_only($str, $tags) { 
     if(!is_array($tags)) { 
       $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags)); 
       if(end($tags) == '') array_pop($tags); 
     } 
     foreach($tags as $tag) $str = preg_replace('#</?'.$tag.'[^>]*>#is', '', $str); 
     return $str; 
} 

et l'appeler comme:

$string_value = strip_only($string_value,'img'); 

Working link

+0

Merci, il fonctionne.Mais j'ai besoin de supprimer la balise img seulement.Parce que j'ai beaucoup d'autres balises html que je ne mentionne pas sur mon exemple.so, est leur toute façon de supprimer la balise ima seulement que je mentionne ?? pls répondre – riad

+0

' string strip_tags (string $ str [, string $ allowable_tags]) 'Vous pouvez autoriser les tags que vous voulez. –

+0

à nouveau thx bro, mais j'ai beaucoup d'autres balises html sur ce string.Basically je dois remplacer la balise img only.so pls aide pour enlever la balise img seulement ... thx encore – riad

Questions connexes