PHP DOM Document LoadHTMLFile прерывается скобками

Я работаю над парсером PHP, который анализирует страницу моих "групп" в школе. Это страницы с уникальным URL-адресом, основанным на названии курса и нескольких других переменных. Страница состоит из группы HTML .

Загрузка HTML из URL-адреса работает до тех пор, пока он не встретит a <code>) в содержимом файла. Затем он просто прекращает загрузку и сохраняет только то, что получил до сих пор. Очевидно, что загруженный HTML не был создан мной, и я не могу помешать таким символам быть в HTML-коде.

Однако он отлично работает, когда я запускаю его локально с помощью MAMP. Я попытался найти ответы, но не нашел ничего, что могло бы решить мою проблему.

Как я могу избежать этих символов перед загрузкой?

Мой текущий PHP:

<code>$dom = new DOMDocument; 
libxml_use_internal_errors(true); // the HTML i parse contains a lot of unclosed tags, this to prevent the errors from displaying on the page
$dom->loadHTMLFile('http://isarog.hhs.nl/Web_Site/HHS/ICTM/Public/Iris_Roster/Timetables/11_2/11_2-CMD-4vt-p2.html'); 

echo $dom->getElementsByTagName('html')->item(0)->nodeValue;
</code>
1 ответ

Этот вопрос решил мою проблему: удалить управляющие символы из php String

По-видимому, в моем вводе HTML был невидимый персонаж, который вызывал остановку функции загрузки. Следующие очистили все это:

$str = file_get_contents('http://isarog.hhs.nl/Web_Site/HHS/ICTM/Public/Iris_Roster/Timetables/11_2/11_2-CMD-4vt-p2.html');
$str = mb_convert_encoding($str, 'utf-8', mb_detect_encoding($str));

$str = preg_replace('/[\x00-\x1F\x7F]/', '', $str);
$str = ereg_replace("[[:cntrl:]]", "", $str);

$dom = new DOMDocument;
libxml_use_internal_errors(true); // Screw al die markup syntax errors dan ook
$dom->loadHTML($str);

licensed under cc by-sa 3.0 with attribution.