2014-07-30 7 views
0

У меня есть несколько текстов, и мне нужно удалить некоторые изображения из этих текстов, как я могу это сделать? Я wnat удалить это изображение:Удалить изображения из текста

<img src="//blabla.com/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /> 

Bug этот сайт «blabla.com» может измениться, у меня есть много строк, как это:

<img src="http://www.bleble.com/wp-includes/images/smilies/icon_hap.gif" alt=":)" class="wp-smiley" /> 
<img src="http://www.blublu.com/wp-includes/images/smilies/icon_bor.gif" alt=":(" class="wp-smiley" /> 

Мне нужна PHP функция: getAllHtmlTagsFromText, чем я заменил img src, который хочу удалить.

У меня есть этот код, чтобы получить все изображения из текста:

$output = preg_match_all("/<img .*?(?=src)src=\"([^\"]+)\"/si", $post, $matches); 

Но с этой линией я получаю только адрес изображения и если я получаю все атрибуты, как SRC/альт/класс можно удалить изображение из моих текстов.

ответ

1

Почти у вас есть массив $matches, который имеет все соответствия img-тегам в $post. Попробуйте следующее:

// change the regex to match any "<img " followed by anything except a ">", lastly the closing ">" 
$output = preg_match_all("/<img [^>]+>/si", $post, $matches); 

Итерация по каждому матчу.

$matches = $matches[0]; // due to the way preg_match populates the $matches array 
foreach ($matches as $i => $match){ 
    $post = str_replace($match, '', $post); 
} 

echo $post; // this should now print everything except the <img> tags 
+0

tks with preg_match_all – eugui

Смежные вопросы