Удалить таблицу html php

Удалить таблицу и ее содержимое из HTML-кода в PHP

У меня есть HTML-код, как показано ниже. Я хочу удалить всю таблицу и ее содержимое из нее с помощью php. Я могу удалить теги таблицы с помощью PHP strip_tags но я не уверен насчет удаления содержимого таблицы. Любая помощь будет оценена.

 

This is test paragraph

Firstname Lastname Age
Jill Smith 50

Спасибо @medigeek и всем за ваши ответы, я сделал несколько изменений в коде, чтобы он работал со встроенными стилями. Решение:

$html = ' 

This is test paragraph

// Note: Inline Styles
Firstname Lastname Age
Jill Smith 50
'; $regex = '/]*>.*?/s'; // Regular expression pattern //This Regex pattern even works with tags that contains inline styles $replace = ''; $result = preg_replace($regex, $replace, $html); echo($result);

4 ответа

  

This is test paragraph

Firstname Lastname Age
Jill Smith 50
'; $regexpattern = '/.*?/s'; // Matching regular expression pattern $replacement = ''; // Substitute the matched pattern with an empty string $res = preg_replace($regexpattern, $replacement, $teststring); echo($res); ?>

Соответствие шаблону регулярных выражений

.* = сопоставить что-либо (любые символы или пустое) между

? = но не будьте жадными (как в случае совпадения только символов между установленными пределами)

= прекратить соответствие, когда вы видите этот текст

/ = конец шаблона регулярного выражения

s = модификатор, продолжайте сопоставлять, даже если вы наткнетесь на символы новой строки

Регулярные выражения эффективны в сопоставлении, казалось бы, сложных текстовых строк на разных языках программирования. Вы можете найти больше информации здесь:

Источник

Удалить таблицу и ее содержимое из HTML-кода в PHP

У меня есть HTML-код, как показано ниже. Я хочу удалить всю таблицу и ее содержимое из нее с помощью php. Я могу удалить теги таблицы с помощью PHP strip_tags , но я не уверен насчет удаления содержимого таблицы. Любая помощь будет оценена.

 

This is test paragraph

Firstname Lastname Age
Jill Smith 50

Спасибо @medigeek и всем за ваши ответы, я сделал несколько изменений в коде, чтобы он работал со встроенными стилями. Решение:

$html = ' 

This is test paragraph

// Note: Inline Styles
Firstname Lastname Age
Jill Smith 50
'; $regex = '/]*>.*?/s'; // Regular expression pattern //This Regex pattern even works with tags that contains inline styles $replace = ''; $result = preg_replace($regex, $replace, $html); echo($result);

4 ответа

  

This is test paragraph

Firstname Lastname Age
Jill Smith 50
'; $regexpattern = '/.*?/s'; // Matching regular expression pattern $replacement = ''; // Substitute the matched pattern with an empty string $res = preg_replace($regexpattern, $replacement, $teststring); echo($res); ?>

Соответствующий шаблон регулярных выражений

Регулярные выражения эффективны в сопоставлении, казалось бы, сложных текстовых строк на разных языках программирования. Вы можете найти больше информации здесь:

$content =  

This is test paragraph

Firstname Lastname Age
Jill Smith 50
DATA; $doc = new DOMDocument(); $doc->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $tables = $doc->getElementsByTagName('table'); while ($tables->length) < $tables[0]->parentNode->removeChild($tables[0]); > echo $doc->saveHTML();

Если вы хотите сделать это после того, как страница уже загружена (загрузка страницы и определенное событие вызывает удаление), это не может быть сделано с помощью php. Нечто подобное должно быть сделано с использованием JavaScript. Если вы хотите, чтобы он был удален во время загрузки страницы, вам нужно установить вывод в php.

 

This is test paragraph

Firstname Lastname Age Jill Smith 50 "; > ?>

Выполнение этого будет отображать таблицу только тогда, когда причина указана через PHP.

Вы можете сделать это с помощью preg_replace:

$your_html = ').*?()/s", "", $your_html); echo $new_html; /* OUTPUT: 

This is test paragraph

*/

Источник

Удаление таблицы

Удаление строки из таблицы
В качестве наработки опыта делаю простенькую админку с редактированием таблиц БД.

Удаление данных из таблицы
Следующим кодом формируется таблица в html и выводятся данные из массива: for ($j=1; $j<($n+2);.

Удаление записи из таблицы БД
Здравствуйте. Возникла небольшая проблема. Необходимо редактировать таблицу БД через скрипт.

Удаление выбраной строки с таблицы
Здравствуйте, искал скрипт удаление строки с таблицы, вот нашёл: <?PHP $result = mysql_query.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
 echo '   '; $x= $_POST[x]; echo "Таблица:"; echo "
"
; for ($i=1;$i$x;$i++) { echo '';for($h=1;$h$x;$h++) { echo "";}echo"
"; echo "$h"; echo "
"
; } echo "\"
var tables = document.getElementsByTagName('table'); for (var i = 0; i < tables.length; ++i) tables[i].parentNode.removeChild(tables[i]); >\">"; ?>

Такой говнокод удалит все таблицы на странице при нажатии кнопки. Для того чтобы удалить конкретную — присваивайте каждой таблице идентификатор и находите ее по нему.

P.s. пихать хтмл код через эхо плохая идея — смотрите в сторону шаблонизаторов, JavaScript который в onclick кнопки тоже нужно убирать в отдельный файл, но я оставлю это вам, заодно и разберетесь

Источник

Удалить таблицу html php

Здесь используется таблица, созданная в предыдущем примере.

 < ?php// Данные для MySQL сервера $dbhost = "localhost"; // Хост $dbuser = "guest"; // Имя пользователя $dbpassword = "mypassword"; // Пароль $dbname = "database"; // Имя базы данных echo 'Delete Table< br>'; $link = mysql_connect($dbhost, $dbuser, $dbpassword); if (false === $link) die ('Error database connect< br>'); $select_result = mysql_select_db($dbname, $link); if (false === $select_result) die ('Error database select< br>'); $query = "DROP TABLE customer"; $query_result = mysql_query($query, $link); if (false === $query_result) die ('Error database SQL query< br>'); $close_result = mysql_close($link); if (false === $close_result) die ('Error database close< br>'); ?> 

Источник

Как убрать таблицу, tr, td тег в html с помощью php

У меня есть 2 таблицы, я хочу удалить все теги: таблица, tr, td, если в таблице есть тег img (таблица 1). Мне нужно получить результат как:

  CườngEverything 
Someone
Everything

Пожалуйста, помогите мне. Спасибо.

5 ответов

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

    Cường  Everything   
Someone
Everything
'; $html = preg_replace_callback('/]*>.*?/si', 'removeTableIfImg', $html); function removeTableIfImg($matches) < $table = $matches[0]; return preg_match('/]*>/i', $table, $img) ? preg_replace('/]*>\s*/i', '', $table) : $table; > echo $html; ?>

Первый шаблон находит таблицы. Второй шаблон (в обратном вызове) проверяет наличие тега изображения. Третий удаляет теги table, td и tr.

HTML Purifier может использоваться для удаления всех тегов или определенного набора тегов из документа. Это идеальное решение для практически любого удаления тегов HTML в PHP — никогда не используйте для этого регулярные выражения, иначе солнце сгорит, и мы все замерзнем в удушающей темноте.

$config->set('HTML.Allowed', 'img'); $purifier = new HTMLPurifier($config); $output = $filter->purify($YOUR_HTML); 

Вам нужно будет добавить $config->set(‘HTML.Allowed’, ‘TAGNAME’); линия для каждой метки, которую вы не хотите убирать, но это цена, которую стоит заплатить за продолжительное жизненное тепло дневной звезды. И также не оставляю ваш сайт открытым для XSS-атак и глюков поедания контента, я думаю.

Давайте найдем теги на странице HTML с селекторами, похожими на jQuery, и извлечем содержимое из HTML в одну строку.

это регулярное выражение выберет все теги tr td и table, не являющиеся жадными.

Вы можете увидеть это в действии здесь:

Как сказано выше, не используйте регулярные выражения для этого, это сведет вас с ума. Обычно поиск библиотек занимает столько же времени, сколько и написание собственного небольшого парсера для этого. Я делал это несколько раз на разных языках. Вы многому научились и часто можете повторно использовать код:-)

поскольку вас не интересуют атрибуты, это должно быть довольно просто. Цикл входа на сайт char by char. Посмотрите на этот Java-код, один из моих ранних, меньших подходов к очистке HTML:

public static String sanatize(String body, String[] whiteList, String tagSeperator, String seperate) < StringBuilder out = new StringBuilder(); StringBuilder tag = new StringBuilder(); boolean quoteOpen = false; boolean tagOpen = false; for(int i=0;ielse if(c == '>' && !quoteOpen && tagOpen) < tag.append(c); for (String tagName : whiteList) < String stag = tag.toString().toLowerCase(); if (stag.startsWith("") || stag.startsWith("")) < out.append(tag); >else if (stag.startsWith("2) < if (seperate.contains("," + stag.replaceAll("[].*", "$1") + ",")) < out.append(tagSeperator); >> else < if (!out.toString().endsWith(tagSeperator)) < out.append(tagSeperator); >> > > tag = new StringBuilder(); tagOpen = false; > else if (c == '"' && !quoteOpen) < quoteOpen = true; if (tagOpen) tag.append(c); else out.append(c); >else if (i>1 && c == '"' && quoteOpen && body.charAt(i-1) != '\\' ) < quoteOpen = false; if (tagOpen) tag.append(c); else out.append(c); >else < if (tagOpen) tag.append(c); else out.append(c); >> return out.toString(); > 

Вы можете игнорировать разделитель и разделить, я использовал это для очистки тегов и преобразования в CSV

Источник

Читайте также:  Запуск файла с помощью python
Оцените статью