PHP - html_simple_dom, сканеры кодирует innerhtml? - PullRequest
0 голосов
/ 26 мая 2019

Я использую PHP html_simple_dom.

Целевой сайт использует UTF-8. Мой php и контекст потока настроены на использование UTF 8.

Элемент (который я проверяю в браузере) имеет innerHTML "AAA ' BBB", по крайней мере, при его рендеринге с использованием моих браузеров Firefox и Chrome.

Однако мой PHP-скрипт всегда выбирает эту строку как "AAA ' BBB". Я могу исправить это, используя htmlspecialchars_decode ($ string, 1), но я действительно хочу знать, почему скрипт PHP, или, скорее, веб-сайт («неправильно»), кодирует строку в первую очередь при посещении ее с помощью моего PHP, что явно установлен на UTF

header('Content-Type: text/html; charset=utf-8');
define("CONTEXT", stream_context_create(
    array(
        "http" =>
            array(
                "header" => 'Content-Type: text/html; charset=utf-8'
               // also tried 'header' => 'Accept-Charset: UTF-8'
            )
        )
)
);

целевой объект читает UTF-8 - http://mtggoldfish.com.cutercounter.com/

$ html = file_get_html ($ url, false, CONTEXT);

// do things, blurts out every "'" as encoded &#039

1 Ответ

1 голос
/ 26 мая 2019

Браузерные инспекторы немного преобразуются, чтобы получить что-то понятное человеку.

Создайте простой HTML-код только с AAA ' BBB в теле, вы увидите AAA ' BBB в инспекторах.

Если вы действительно хотите увидеть содержимое страницы, посмотрите на исходный код (который получает file_get_html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...