Проблема с корнем здесь (по крайней мере, на моем компьютере, может отличаться от
ваша версия ...), что сайт возвращает сжатые данные, и это не так
php и curl распаковываются должным образом перед передачей в дом
синтаксический анализатор. Если вы используете php 5.4, вы можете использовать gzdecode и
file_get_contents, чтобы распаковать его самостоятельно.
<?php
// download the site
$data = file_get_contents("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=49776615757150035");
// decompress it (a bit hacky to strip off the gzip header)
$data = gzinflate(substr($data, 10, -8));
include("simple_html_dom.php");
// parse and use
$html = str_get_html($data);
echo $html->root->innertext();
Обратите внимание, что этот хак не будет работать на большинстве сайтов. Главная причина
в основе этого мне кажется, что curl не объявляет, что принимает
данные gzip ... но веб-сервер в этом домене не обращает внимания
в этот заголовок, и все равно gzips. Тогда ни скручивай, ни php
фактически проверяет заголовок Content-Encoding в ответе, и
предполагает, что это не GZIP, поэтому он проходит без ошибок, ни
вызывая gunzip. Ошибки как на сервере, так и на клиенте здесь!
Для более надежного решения, возможно, вы можете использовать curl для получения заголовков
и осмотрите их самостоятельно, чтобы определить, нужно ли вам распаковывать его.
Или вы можете просто использовать этот хак для этого сайта и обычный метод для
другие для простоты.
Это может также помочь установить кодировку символов на вашем выходе.
Добавьте это, прежде чем что-то повторить, чтобы убедиться, что прочитанные вами данные не являются
записывается в браузере пользователя как неправильная кодировка:
header('Content-Type: text/html; charset=utf-8');