Добрый день! Подскажите пожалуйста, поставил плагин проверки "битых ссылок", но необходимо его расширить, добавить пару url-адресов для проверки на доступность, но проблема заключается в том, что первый адрес (http://example.ru - электронная библиотека) возвращает код '200' при доступности книги, а также если ее чтение недоступно, т.е. страница эл.библиотеки открывается, но пишется текст "чтение книги недоступно". (также и с http://example2.ru ) Соответственно, если страница доступна, но присутствует запись о "недоступности книги", то ссылка считается битой. Необходимо написать еще одну функцию? Дописать условия проверки, изменить на множественный обработчик curl_multi_init(); или создать несколько cURL ресурсов ($s1 = curl_init(); и $s2 = curl_init();) Подскажите пожалуйста в каком направлении двигаться, с cURL'ом только знакомлюсь, буду очень признателен за помощь.
public function scrape($url) {
global $CFG;
$cookiefilelocation = $CFG->dataroot . '/tool_crawler_cookies.txt';
$s = curl_init();
curl_setopt($s, CURLOPT_URL, $url);
curl_setopt($s, CURLOPT_TIMEOUT, self::get_config()->maxtime);
if ( $this->should_be_authenticated($url) ) {
curl_setopt($s, CURLOPT_USERPWD, self::get_config()->botusername.':'.self::get_config()->botpassword);
}
curl_setopt($s, CURLOPT_USERAGENT,
self::get_config()->useragent . '/' . self::get_config()->version . ' ('.$CFG->wwwroot.')' );
curl_setopt($s, CURLOPT_MAXREDIRS, 5);
curl_setopt($s, CURLOPT_RETURNTRANSFER, true);
curl_setopt($s, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($s, CURLOPT_FRESH_CONNECT, true);
curl_setopt($s, CURLOPT_HEADER, true);
curl_setopt($s, CURLOPT_COOKIEJAR, $cookiefilelocation);
curl_setopt($s, CURLOPT_COOKIEFILE, $cookiefilelocation);
curl_setopt($s, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($s, CURLOPT_SSL_VERIFYPEER, 0);
$result = (object) array();
$result->url = $url;
$raw = curl_exec($s);
if (empty($raw)) {
$result->url = $url;
$result->httpmsg = 'Curl Error: ' . curl_errno($s);
$result->title = curl_error($s);
$result->contents = '';
$result->httpcode = '500';
$result->filesize = curl_getinfo($s, CURLINFO_SIZE_DOWNLOAD);
$mimetype = curl_getinfo($s, CURLINFO_CONTENT_TYPE);
$mimetype = preg_replace('/;.*/', '', $mimetype);
$result->mimetype = $mimetype;
$result->lastcrawled = time();
$result->downloadduration = curl_getinfo($s, CURLINFO_TOTAL_TIME);
$final = curl_getinfo($s, CURLINFO_EFFECTIVE_URL);
if ($final != $url) {
$result->redirect = $final;
$mdlw = strlen($CFG->wwwroot);
if (substr ($final, 0, $mdlw) !== $CFG->wwwroot) {
$result->external = 1;
}
} else {
$result->redirect = '';
}
curl_close($s);
return $result;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
WP Данные из текстового поля попадают в переменную the_contentНужна функция, которая будет пробегаться по тексту, выискивать таблицы, не заключенные...
Есть АПИ на Laravel, я использую библиотеку Laravel-Excel что бы сгенерировать xls файл, как его правильно отдать клиенту и как сделать на реакте скачивание...
Мне нужен скрипт на PHP или JavaScript, который будет на стороннем сайте вводить в текстовое поле текст, а потом нажимать несколько кнопокID кнопок...