affet » 2012.03.12 02:13 |
Добрый день, у меня есть граббер сайта http://eroboom.net/photo/ Все хорошо работает, хочу чтоб когда скачиваешь фотку на странице например http://eroboom.net/photo/img.php?f=!Anal/1331448302/f5e0cba7e43ebea139a71440613794f6/fda860abbbcc2510c75834fd10a9e9d3.jpg
это картинка хочу копировался на мой хост, ну странийу этого картинка точно не вижу чтобы зделал copy();
Так здесь например http://eroboom.net/photo/img.php?f=!Anal/1331448302/f5e0cba7e43ebea139a71440613794f6/fda860abbbcc2510c75834fd10a9e9d3.jpg выбираем размер, потом через пост отправляеться запрос, потом переадресация бываеть http://eroboom.net/photo/size_3/DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__/Photo_34465662882117.jpg
как мне сначала узнать что суда будеть переадресация http://eroboom.net/photo/size_3/DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__/Photo_34465662882117.jpg
здесь и оригиналья фотка (240х320) |
Gemorroj » 2012.03.12 11:51 |
используй курл с поддержкой автоматической переадресации |
tipsun » 2012.03.12 12:52 |
Вроде как если какой-то "safe_mode" включен, то не будет работать что-ли. Я пытался, у меня чет не получалось. |
affet » 2012.03.12 12:52 |
он будеть ловить переадресацмю ?
Делаю так
$ch = curl_init('http://eroboom.net/photo/img.php'); curl_setopt($ch, CURLOPT_HEADER, 1); // Отображать в ответе заголовки curl_setopt($ch, CURLOPT_NOBODY, 1); // Неотображать текст самой страницы curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "rsz=3&df=DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__"); $header = curl_exec($ch); curl_close($ch); echo $header;
Вижу http заголовку location: /
Не могу поймать переадресацию ( Добавлено спустя 8 минут 25 секунд: Результат HTTP/1.1 302 Found Server: nginx/1.0.0 Date: Mon, 12 Mar 2012 08:56:25 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.2.17 location: / Content-Length: 0 1
Можеть http заголовку тоже передать ? какие нужны передать ? |
tipsun » 2012.03.12 17:07 |
Вроде работает, просто добавь воды кода :)
Добавлено спустя 4 минуты 28 секунд: В do размести подключение. И проверяй, если поступил адрес с result[1], то с ним работай. Не забудь, у тебя грабб, поэтому добавляй адрес сайта-жертвы, где не указано http:// |
tipsun » 2012.03.12 17:34 |
|
Gemorroj » 2012.03.12 17:54 |
tipsun, проблемы с Location возникают из-за того, что он написан в нарушение HTTP 1/1. По стандарту там должен быть полный путь, а не относительный. На php.net много костыльных реализаций на этот счет есть. |
affet » 2012.03.12 19:50 |
tipsun Тоже ответ location: / Добавлено спустя 1 минуту 45 секунд: Gemorroj Я незнаю англ язык, на php.net многое на англ. Сможешь решение написать ? |
tipsun » 2012.03.12 20:56 |
affet, не работает? Я там в RegEx указал ' i '. Gemorroj, честно говоря забыл посмотреть на php.net решения. Вчера по поводу http_build_query смотрел. |
affet » 2012.03.12 20:56 |
tipsun $url = 'http://eroboom.net/photo/img.php'; $net = curl_init(); //curl_setopt_array($net, $array); do { $url = ($result) ? $result[1] : $url; curl_setopt($net, CURLOPT_URL, $url); $headers = curl_exec($net); } while (preg_match('#Location:\s{0,}([^\r\n]+)#i', $headers, $result)); curl_setopt($net, CURLOPT_URL, $url); // last current address curl_setopt($net, CURLOPT_POST, 1); #curl_setopt($net, CURLOPT_USERAGENT, 'Opera 11.61'); curl_setopt($net, CURLOPT_POSTFIELDS, "rsz=3&df=DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__"); curl_setopt($net, CURLOPT_HEADER, 1);
$html = curl_exec($net); curl_close($net); echo $html;
Ответ
HTTP/1.1 302 Found Server: nginx/1.0.0 Date: Mon, 12 Mar 2012 16:53:50 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.2.17 location: / Content-Length: 0 |
tipsun » 2012.03.12 21:01 |
Надо попробовать с location, неужели не ловит... Добавлено спустя 8 минут 51 секунду: Да вроде ловит. |
tipsun » 2012.03.12 21:12 |
Возможно тебе приходит такой ответ из-за того, что не все данные формы отправляешь. |
affet » 2012.03.12 21:20 |
Я смотрю там всего 2 формы, и это отправляю, я в ответе вижу 1
HTTP/1.1 302 Found Server: nginx/1.0.0 Date: Mon, 12 Mar 2012 17:20:43 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.2.17 location: / Content-Length: 0
1 Добавлено спустя 8 минут : А как отправить ГЕТ запрос ? Я пищу так
http://eroboom.net/photo/img.php?df=DcnBDYAwCAXQWVzAgp-WcnQUWsHEGOP-J33Xt-yP34UBFumgrWQNmsM1BDHCGeb6HzWGmmQrRlVr5NG3QWIzZvNEQHwElFtdr,f8AA__&rsz=3
Захожу открываеться Добавлено спустя 9 минут 29 секунд: Ну блин я не замечал, там стоить <form action="/photo/img.php" method="get">
метод гет
Для метод гет надо написать так ?
$url = 'http://eroboom.net/photo/img.php?rsz=3&df=DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__'; |
affet » 2012.03.12 21:33 |
че то страница долго гружеться и в конце
Fatal error: Maximum execution time of 30 Добавлено спустя 3 минуты 3 секунды: Все решил проблему, сделал. Спасибо tipsun и Gemorroj |
affet » 2012.03.12 23:38 |
Вот щас Location: ./size_3/DcnBDYAwCADAWVzAQqGlfToKUDAxxrj,S-972,HoXZAImQdBLdkC3FSCKSwUaar8Bx1JJmcvuXR0UDNzrw3BpQ3iXAg6Yy7ar,f8AA__/Photo_34465662882117.jpg
А как сейчас выделить этот адрес.
Делаю
preg_match('#Location:\s{0,}([^\r\n]+)#i', $header, $result);
echo $result[0][0] . ", " . $result[0][1] . "\n"; echo $result[1][0] . ", " . $result[1][1] . "\n";
ничего нету ( |
TLENS » 2012.03.13 00:14 |
Дурастикой занимаешься. В курла есть встроеная директива для перехода по переадресациям. FOLOWLOCATION или как то так. Ищи сам как правильно написать |
affet » 2012.03.13 00:18 |
Читай тему внимательно ! Дучишь ты сам, мне не надо перейти по переадреспцию. Надо найти адрес переадресецию, там контент , потом копировать на хост. Так что не оффтоми.
Все исправил, можно закрыть тему |
tipsun » 2012.03.13 09:10 |
affet, перехват корректный. Ты либо адрес не ставишь правильный, либо не все данные формы отправляешь. |
Gemorroj » 2012.03.13 10:59 |
affet, едуты тебе все правильно сказал. просто в добавку к той опции нужно делать обработку относительных адресов в переадресациях |