Как удалить текст между тегами в php?

То же самое произошло со мной, и я просто переустановил человечность после фиксации окон. Я не знаю, должен ли я был сделать это, там могло бы быть более легкое решение, но оно работало на меня.

18
задан Konerak 3 May 2011 в 16:34
поделиться

4 ответа

$str = preg_replace('#(<a.*?>).*?(</a>)#', '$1$2', $str)
30
ответ дан 30 November 2019 в 06:29
поделиться

Использование SimpleHTMLDom :

<?php
// example of how to modify anchor innerText
include('simple_html_dom.php');

// get DOM from URL or file
$html = file_get_html('http://www.example.com/');

//set innerText to null for each anchor
foreach($html->find('a') as $e) {
    $e->innerText = null;
}

// dump contents
echo $html;
?>
13
ответ дан 30 November 2019 в 06:29
поделиться

А что насчет чего-то вроде этого, учитывая, что вы, возможно, захотите повторно использовать его с другими href s:

$str = '<a href="link.html">text</a>';
$result = preg_replace('#(<a[^>]*>).*?(</a>)#', '$1$2', $str);
var_dump($result);

Что даст вам:

string '<a href="link.html"></a>' (length=24)

(I ' м, учитывая, что вы допустили опечатку в OP?)


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

$str = '<a href="link.html">text</a>';
$result = preg_replace('#(<a href="link.html">).*?(</a>)#', '$1$2', $str);
var_dump($result);

Что также даст вам:

string '<a href="link.html"></a>' (length=24)


В качестве примечания: подробнее сложный HTML, не пытайтесь использовать регулярные выражения: они отлично работают для такой простой ситуации, но для реальной части HTML они в целом не помогают: HTML недостаточно "регулярный" "для анализа с помощью регулярных выражений.

7
ответ дан 30 November 2019 в 06:29
поделиться

Вы можете использовать подстроку в сочетании с stringpos, хотя это и не так очень хороший подход.

Проверьте: Руководство по PHP - Строковые функции

Другой способ - написать регулярное выражение, соответствующее вашим критериям. Но для быстрого решения вашей проблемы подойдут строковые функции ...

РЕДАКТИРОВАТЬ: Я недооценил аудиторию. ;) Продолжайте с регулярными выражениями ... ^^

1
ответ дан 30 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: