Как подстроки из строки, указав начальный и конечный символы?

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

explode($text, '<img', '/>'); // where explode($string, $start_chars, $end_chars);

например:

$text = "<img src='anything' width='100' height='200'/><h1>Hello World!</h1>";

выход должен быть <h1>Hello World!</h1>

так как я могу сделать это в php?

-3

Решение

Пересмотрено на основе нового вопроса …

Использовать DOMDocument:

$text = "<img src='anything' width='100' height='200'/><h1>Hello World!</h1>";
$dom = new DOMDocument();
$dom->loadHTML($text);
$h1Tags = $dom->getElementsByTagName('h1');
$string = $dom->saveHTML($h1Tags->item(0));
echo $string;

Выход: <h1>Hello World!</h1>

Увидеть Вот для получения дополнительной информации / примеров

1

Другие решения

Попробуйте с этим:

$text = "<img src='anything' width='100' height='200'/><h1>Hello World!</h1>";

$dom = new DOMDocument();
$dom->loadHTML($text);

$node = $dom->getElementsByTagName('img')->item(0);
$node->parentNode->removeChild($node);

$dom->removeChild($dom->doctype);
$dom->replaceChild($dom->firstChild->firstChild->firstChild, $dom->firstChild);

echo $dom->saveHtml();
1

Учитывая некоторый текст как:

<img src='img1.png' width='100' height='200'/><h1>Title 1</h1>
<img src='img2.png' width='100' height='200'/><h1>Title 2</h1>
<img src='img4.png' width='100' height='200'/><h1>Title 3</h1>

Вы заявляете, что хотите собрать только текст, который появится между тегами IMG. Это не было ясно заранее, и было предложено, вы можете использовать DOMDocument для анализа HTML.

Использование регулярных выражений — это еще один способ. Пример: https://regex101.com/r/kH0xA3/1

$re = "/<*img.*\\/>(.*)/im";
$str = "<img src='img1.png' width='100' height='200'/><h1>Title 1</h1>\n<img src='img2.png' width='100' height='200'/><h1>Title 2</h1>\n<img src='img4.png' width='100' height='200'/><h1>Title 3</h1>";

preg_match_all($re, $str, $matches);
0

кажется оптимальным ответом:

$dom = new DOMDocument();
$dom->loadHTML($m->en);
$node = $dom->getElementsByTagName('img')->item(0);
$node->parentNode->removeChild($node);
$string = $dom->saveHTML();
echo $string;
0

Возможно, вы не слышали о функции substr () в PHP. Это указано здесь!

http://php.net/substr

-2
По вопросам рекламы [email protected]