Вы не зашли.
Это короче надо искать другие варианты соединения?
Код:
Внимание: |
curl_setopt_array(): CURLOPT_FOLLOWLOCATION |
не может быть активирована, когда safe_mode включен |
или open_basedir установлен в |
/usr/home/tipsun/htdocs/cinema/index.php |
Отредактировано tipsun (2011.08.28 06:06)
Хотя можно и другим способом эту переадресацию поймать:
get_headers('url', 1);.
Да и вообще
file_get_contents(); обойтись. Думал как получше замаскироваться, чтоб граб долго работал.
- - - -
Эта переадресация 1 раз встечается (в месяц: /2011-08/).
Отредактировано tipsun (2011.08.28 22:10)
tipsun, скорее всего там не совсем корректно переадресация сделана. в соответствии с протоколом HTTP 1.1, путь всегда должен быть абсолютным. т.е. не /index.php, а http://wapinet.ru/index.php
curl работает только со 2 вариантом. в 90% случаев, проблема именно в этом.
Спс.
Я там смотрел, полный адрес идет, ну во всяком случае в Chrome в загловках. (этот Chrome не поймешь, он сам разметку исправляет, лишние теги убирает, добавляет итп)
Отредактировано tipsun (2011.09.01 13:01)
смотри в фаербаге или драгонфлае
Ок, спс.
Я там по-другому сделал. Переадресация встречается 1 раз.
Эту переадресацию ловлю при помощи get_headers().
Далее цикл по находжению ссылок, в котором попутно идет запись нужной инфы в базу.
Подключаюсь при помощи cURL.
Что плохо, более подробная инфа лежит в ссылке (как бы подробнее), и надо получается каждый раз на ссылку заходить за более подробной инфой. Но зато 1 раз.
Можно после сканирования сделать, я думаю.
Это еще предстоит написать.
Ну короче вот сие бот-недоразумение...
Код:
span style="color: #0000BB"><?php////////////Автор: TiPsun// ICQ : 34142776//////////require_once 'db.php';function scanerBot($url=null) { GLOBAL $db; GLOBAL $n; $agent = 'Nokia6070/2.0 (04.00) Profile/MIDP-2.0 Configuration/CLDC-1.1'; $net = curl_init(); curl_setopt_array($net, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $agent, CURLOPT_AUTOREFERER => 1)); $out = curl_exec($net); curl_close($net); $html = mb_convert_encoding($out, 'utf-8', 'windows-1251'); preg_match_all('/movie\/(\d+)\/.{2}([^\<]+)/', $html, $matches); $date = baseName($url); $db->beginTransaction(); foreach ($matches[1] as $key => $value) { $query = $db->prepare("INSERT INTO `films` SET `id`=?, `date`=?, `name`=?;"); $query->execute(array($value, $date, $matches[2][$key])); } $db->commit(); $n += 1; if (preg_match('/(http:\/\/m\.kinopoisk\.ru\/premier\/\d{4}-\d{2}\/).{2}→/', $html, $match)) { scanerBot($match[1]); } else { exit('Отсканировано '.$n.' страниц!'); } }//////////$url = 'http://m.kinopoisk.ru/premier/';$url = get_headers($url, 1);$n = 0;scanerBot($url['Location']);//////////?> |
Можно и свою дату ставить. Год-Месяц и подключиться...
Ну чем для каждого такую работу выполнять, лучше наверно все у себя сохранить.
Отредактировано tipsun (2011.09.01 16:04)
baseName - исправь на basename, php хоть и регистронезависим в названиях функций, но есть посылки для изменения такого поведения к более жесткому наименованию функций, т.е. регистрозависимому.
а так норм. для таких скриптов - главное чтобы они просто выполняли свою задачу.
=0 неужели, наконец норм, Ура!
Отредактировано tipsun (2011.09.02 18:06)
Можно ли хранить конфиденциальные данные в сессиях?