Tôi đã cố gắng để phân tích các trang web bằng cách sử dụng DomObject HTML để sử dụng chúng cho một ứng dụng để quét chúng cho chất lượng SEO.Làm thế nào để ngăn chặn các DomDocument PHP từ "sửa chữa" chuỗi HTML của bạn
Tuy nhiên tôi đã gặp phải vấn đề. Đối với mục đích thử nghiệm, tôi đã viết một trang html nhỏ chứa html không chính xác sau đây:
<head>
<meta name="description" content="randomdesciption">
</head>
<title>sometitle</title>
Như bạn có thể thấy tiêu đề nằm ngoài thẻ đầu là lỗi mà tôi đang cố gắng phát hiện.
Bây giờ đến vấn đề, khi tôi sử dụng curl để bắt chuỗi phản hồi từ trang này, sau đó gửi nó đến tài liệu dom để tải nó dưới dạng HTML, nó thực sự sửa lỗi này bằng cách thêm một thẻ khác xung quanh tiêu đề.
<head>
<meta name="description" content="randomdesciption">
</head>
<head><title>sometitle</title></head>
Tôi đã kiểm tra các dữ liệu phản ứng curl và Infact đó không phải là vấn đề, bằng cách nào đó DomDocument php trong quá trình thực của loadHTML() phương pháp sửa lỗi cú pháp html.
Tôi cũng đã thử tắt tính năng khôi phục DomDocument, replaceEntities và validateOnParse bằng cách đặt chúng thành false, không cần succes.
Tôi đã tìm kiếm trên google nhưng tôi không thể tìm thấy bất kỳ câu trả lời nào cho đến nay. Tôi đoán nó là rất hiếm đối với một số người thực sự muốn HTML bị hỏng không được sửa chữa.
Bất kỳ ai biết cách ngăn DomDocument sửa lỗi html bị hỏng của tôi?
Cảm ơn trước
Bạn đã xem là chạy đánh dấu của bạn thông qua [gọn gàng] (http://php.net/tidy) trước khi đi qua nó DOM, hoặc thậm chí thay cho DOM? Đó là một phần mở rộng hữu ích để phát hiện lỗi đánh dấu. – TML
Lưu ý: Hành vi này thực sự được chỉ định trong HTML: '
' có thẻ mở và đóng tùy chọn và được ngụ ý bởi sự hiện diện của phần tử chỉ đầu như '