Để ẩn các cảnh báo, bạn phải đưa ra các hướng dẫn đặc biệt libxml
được sử dụng nội bộ để thực hiện phân tích cú pháp:
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
Dấu libxml_use_internal_errors(true)
hiệu cho biết rằng bạn sẽ tự xử lý các lỗi và cảnh báo và bạn không muốn chúng làm rối đầu ra của tập lệnh của mình.
Điều này không giống với @
toán tử. Các cảnh báo được thu thập ở hậu trường và sau đó bạn có thể lấy chúng bằng cách sử dụng libxml_get_errors()
trong trường hợp bạn muốn thực hiện ghi nhật ký hoặc trả lại danh sách các vấn đề cho người gọi.
Cho dù bạn có đang sử dụng các cảnh báo đã thu thập hay không, bạn phải luôn xóa hàng đợi bằng cách gọi libxml_clear_errors()
.
Bảo tồn trạng thái
Nếu bạn có mã khác mà sử dụng libxml
nó có thể là đáng giá để đảm bảo mã của bạn không làm thay đổi toàn cầu trạng việc xử lý lỗi; đối với điều này, bạn có thể sử dụng giá trị trả về của libxml_use_internal_errors()
để lưu trạng thái trước đó.
$libxml_previous_state = libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
libxml_use_internal_errors($libxml_previous_state);