Я использую DOMDocument
, чтобы найти и вырезать некоторые HTML-элементы, которые я не хочу использовать в переменной PHP $table_data_for_db
. Необработанная версия $table_data_for_db
поставляется с некоторыми HTML-тегами, которые я не хочу. Итак, я использую приведенный ниже код, чтобы избавиться от некоторых тегов (и контента в этих тегах), а затем сохранить оставшийся HTML в моей БД.Проблема с выходом из DOMDocument
Вот код, я использую для создания $table_data_for_db
...
$table_data_for_db = $_POST['table_data'];
$dom = new DOMDocument;
$dom->loadHTML($table_data_for_db);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//*[@id="problem_header"]');
if($nodes->item(0)) {
$nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
$nodes = $xPath->query('//*[@id="border_row"]');
if($nodes->item(0)) {
$nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
$nodes = $xPath->query('//*[@id="fraction_class"]');
if($nodes->item(0)) {
$nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
$table_data_for_db = $dom->saveHTML();
Проблема заключается в том, что я получаю выход, как это ... Более того же ...
Где нежелательны <!DOCTYPE html...
, <html><head>
и </head></html>
.
В настоящее время у меня есть решение на месте, где я использую str_replace
, чтобы избавиться от нежелательных элементов перед вставкой в БД, но это похоже на взлома. Есть лучший способ сделать это?
Я не видел, что у него были ответы. Сожалею. Я попробую это и обновить. – gtilflm
Я только что получил «Предупреждение: DOMDocument :: loadHTML() ожидает точно 1 параметр, 2 заданный в /path/to/my/script.php в строке 19' – gtilflm
Да, я просто опубликовал ваш ответ, когда вы удалили вопрос. Это препятствует людям, пытающимся помочь вам, когда вы удаляете вопрос. – kojow7