
Частый посетитель

Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017
Откуда: Германия, Бавария
Помог: 37 раз(а)

|
ladan1002 пишет:Здравствуйте! У меня стоит задача загрузить только часть страницы. Как это можно сделать через curl? Ограничить по размеру, например, максимум 100кб или 2000 символов, что угодно
Саму загрузку так делаю, но она полностью загружается. В интернете не нашел решения
Добрый день!
1.Вы можете получить контент страцы в string через curl использую функцию:Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
function get_web_page($url){ CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => true, // follow redirects CURLOPT_ENCODING => "", // handle all encodings CURLOPT_USERAGENT => "spider", // who am i CURLOPT_AUTOREFERER => true, // set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect CURLOPT_TIMEOUT => 120, // timeout on response CURLOPT_MAXREDIRS => 10, // stop after 10 redirects ); return $content; }
или это можно сделать с помощью статдарной функции file_get_contents.
Это просто.
2. Затем Вы хотите отправить в браузер клиента только часть контента, например, 2000 символов из переменной $content
Однако, в результате такого обрезания будет отправлен некорректный html.
Поэтому Вам необходимо спарсить контент и создать коректный html DOM (документ объект модель). См. DOMDocument class, SimpleXMLElement class
https://www.php.net/manual/de/cl....domdocument.php
https://www.php.net/manual/en/cl...simplexmlelement
Обратите внимание на то, что использую эти классы можно отказаться от curl(п.1).
Когда Вы получите DOM исходного сайта, то сможете сделать обрезанный DOM и преобразовав его в string отправить в браузер клиента.
Удачи!(Отредактировано автором: 08 Декабря, 2021 - 09:37:28)
|