2016-09-13 1 views
1

Итак, у меня есть строка, и я использовал функцию strip_tags(), чтобы удалить все теги, кроме IMG, но у меня все еще есть простой текст рядом с моим элементом IMG. Вот визуальный примерКак удалить простой текст из строки после использования strip_tags()

$myvariable = "This text needs to be removed<a href='blah_blah_blah'>Blah</a><img src='blah.jpg'>" 

Таким образом, используя PHP strip_tags() я был в состоянии удалить все теги, кроме тега <img> (что я хочу). Но теперь дело в том, что текст не удаляется.

Как удалить текст слева? Текст всегда будет либо перед тегом или после тега, а

[полезных деталей]

$description = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>'; 

это то, что переменная фактически держит.

Заранее спасибо

+0

регулярное выражение .. но нужно знать больше о возможных строках – nogad

+0

проверить это переменный я только что добавил. Спасибо заранее – Carlitos

ответ

1

Вместо того чтобы заменить то, что вы можете очень хорошо извлечь нужные значения:

(<(\w+).+</\2>) 

Для использования с preg_match() см a demo on regex101.com.
В PHP:

<?php 
$regex = '~(<(\w+).+</\2>)~'; 
$string = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>here as well'; 

if (preg_match($regex, $string, $match)) { 
    echo $match[1]; 
} 
?> 
+0

Что делать, если мне просто нужна часть тега img? – Carlitos

+0

Затем вы можете использовать синтаксический анализатор или [** '(] +>)' **] (https://regex101.com/r/mO9gM6/2) – Jan

0

Пожалуйста, покажите весь свой кусок кода с использованием strip_tags.

Вы можете попробовать: preg_replace('~.*(<img[^>]+>)~', '$1', $myvariable);

+0

проверить переменную, которую я только что добавил. Спасибо заранее – Carlitos

+0

Если вы используете preg_replace выше, вы сохраните тег img, разве это не то, что вы хотите? – antoni

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