2010-10-10 237 views
1

如何從特定字符串替換字符串?請看下面的例子。PHP:將字符串從特定字符串替換爲特定字符串

$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\">"; 

現在我的預期輸出是= <b>Man one</b> and <b>man two</b>.只應該刪除圖像標記。

所以我必須從字符串$ string_value中將整個字符串從"<img"剪切爲">"。 那麼如何使用preg_replace或其他任何方法將"<img"">"之間的整個字符串剪切掉。

替換參數應該是空白。

回答

1

您可以使用正則表達式來排除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

謝謝,它的作品,我想這東西.thnaks Kiselovs。 – riad 2010-10-10 05:56:03

1

只需使用用strip_tags($ STRING_VALUE);你會得到你想要的輸出。

+0

謝謝,這works.But我需要刪除img標籤only.Because我有沒有提到的許多其他的HTML標籤我example.so,是他們沒有辦法刪除IMA標籤只是我提?請回答 – riad 2010-10-10 05:39:56

+0

@riad:'strip_tags'採用指定允許變量的附加參數,只傳遞包含了所有你想要的標籤爲字符串允許。 – casablanca 2010-10-10 05:46:01

+0

@親愛的kiselovs,thx。我得到this.their有許多其他的html tags.so它不足以包括所有的標籤。我只需要替換img標籤,所以請幫助我刪除圖片標籤只....x再次..日期 – riad 2010-10-10 05:48:49

2

看起來你想要去除的標籤。
您可以通過調用函數strip_tags後者從給定的字符串剝離HTMLPHP標籤很容易做到這一點。

$string_value = strip_tags($string_value); 

編輯:

既然你想要去除只有<img標籤,你可以利用這個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; 
} 

,並稱呼其爲:

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

Working link

+0

謝謝,它works.But我只需要刪除img標籤。因爲我有很多其他的html標籤,我沒有提到我的example.so,是他們的任何方式來刪除ima標籤只有我提到??請回復 – riad 2010-10-10 05:40:32

+0

' string strip_tags(string $ str [,string $ allowable_tags])'你可以允許你想要的標籤。 – 2010-10-10 05:43:17

+0

再次THX兄弟,但我有對string.Basically我需要更換img標籤only.so請幫助去除僅img標籤其他許多HTML標籤...... THX再次 – riad 2010-10-10 05:46:35