Câu trả lời đơn giản là bạn không. Bạn sử dụng một trong nhiều trình phân tích cú pháp HTML của PHP để thay thế. Regexes là cách xử lý HTML dễ bị lỗi và dễ bị lỗi.
đó được cho biết bạn có thể làm điều này:
$html = preg_replace('!<div\s+id="ithis"\s+class="cthis">.*?</div>!is', '', $html);
Nhưng nhiều thứ có thể sai với điều này. Ví dụ, nếu có chứa một div:
<div id="ithis" class="cthis">Content here which <div>includes</div> other elements etc..) </div>
bạn sẽ kết thúc với:
other elements etc..) </div>
như regex sẽ dừng lại ở </div>
đầu tiên. Và không có gì bạn thực sự có thể làm để giải quyết vấn đề này (với các biểu thức chính quy) một cách nhất quán.
Done với một phân tích cú pháp nó trông như thế này:
$doc = new DOMDocument();
$doc->loadHTML($html);
$element = $doc->getElementById('ithis');
$element->parentNode->removeChild($element);
$html = $doc->saveHTML();
Bạn có thể xây dựng thêm không? Đây có phải là dạng chuỗi không? –
bạn có biết tên id và/hoặc tên lớp không? Hoặc có bất kỳ định danh riêng biệt nào của id và/hoặc lớp để bạn không xóa tất cả các div rơi vào mô tả đó không? Hoặc bạn có muốn xóa tất cả các div và nội dung của chúng không? –