|
|
|
|
|
для: mikha
(15.06.2009 в 14:11)
| | Вот здорово, ведь я всё тоже самое отсылал в разных интерпритациях, но не получалось)) Спасибо огромное!!!
p.s. Этот пример подошел мне и для другого сайта, который мне тоже не поддавался :) | |
|
|
|
|
|
|
|
для: Diplex
(15.06.2009 в 12:51)
| |
<?php
$post = array(
"dt" => "2009-06-15", // Понятно. На какую дату.
//"last7" => "on", // если на неделю. Если не надо, то без этой строчки
"ch_1TV" => "on", // первый канал. Если не надо, то без этой строчки
"ch_RTR" => "on", // второй канал. Если не надо, то без этой строчки
// другие каналы как выше
);
$_post = array();
if(is_array($post)) foreach($post as $name => $value) $_post[] = $name.'='.urlencode($value);
$post = implode('&', $_post);
$fp = fsockopen("s-tv.ru", 80);
if($fp){
fputs($fp, "POST /?chp=tv HTTP/1.1\r\nHost: s-tv.ru \r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".strlen($post)."\r\n".
"Connection: close\r\n\r\n$post");
$content = '';
while(!feof($fp)) $content .= fgets($fp);
fclose($fp);
echo "<pre>";
print_r($content);
echo "</pre>";
}
?>
|
Разбирайтесь.
UP. А вообще вот _http://us2.php.net/manual/ru/function.fsockopen.php | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2009 в 13:04)
| | Я вот перечитал Ваш пост несколько раз, но так и не понял - наезд это, и скрытое замечание, что я тупой и т.д. Или вообще что происходит?
p.s. Раньше Вы не позволяли себе таких вольностей, а действительно помогали. Что с Вами случилось... жаль | |
|
|
|
|
|
|
|
для: Diplex
(15.06.2009 в 12:51)
| | Мне вот интересно, там и вправду сайт так ортопедически устроен, что одни и те же данные должны передаваться как в теле POST-запроса, так и через URL того же запроса?
Судя по ответу mikha - это Ваше личное осложнение. | |
|
|
|
|
|
|
|
для: mikha
(15.06.2009 в 09:05)
| | Спасибо большое! Но хотел добиться результата без cURL! А вот если это невозможно, то узнать причину! Тут просто спортивный интерес... | |
|
|
|
|
|
|
|
для: Diplex
(14.06.2009 в 21:11)
| |
<?php
$data = array(
"dt" => "2009-06-15", // Понятно. На какую дату.
//"last7" => "on", // если на неделю. Если не надо, то без этой строчки
"ch_1TV" => "on", // первый канал. Если не надо, то без этой строчки
"ch_RTR" => "on", // второй канал. Если не надо, то без этой строчки
// другие каналы как выше
);
$url = "http://s-tv.ru/?chp=tv";
$time_out = 5; // секунд на на работу CURL
if(function_exists('curl_init')){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращать результат, а не выводить
if($time_out) curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
// Работает и без USERAGENT и без REFERER
//curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; WebMoney Advisor; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )");
//curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
curl_close($ch);
echo "<pre>";
print_r($result);
echo "</pre>";
}else{
echo "no CURL";
}
?>
|
На cURL. Обработку ошибок уж сами. | |
|
|
|
|
|
|
|
для: Diplex
(14.06.2009 в 21:11)
| | UP please! | |
|
|
|
|
|
|
| Всем привет!
Вообщем, сломал всю голову, не пойму в чём дело.
Есть сайт s-tv.ru, там хранятся телепрограммы. Хочу взять их, а не получается :)
И вот сижу и думаю, или я совсем глупый, или у них что-то умное в защите.
По этой ссылке - http://s-tv.ru/?chp=tv , список каналов, которые надо отметить галочкой.
У этих чекбоксов - нету параметра value, как я вроде понял, в таком случае значение меняется на "on". Что я только не делал, но никак не получается добиться результата!
Вот что выдаёт плагин Firebug:
Response Headers
Date Sun, 14 Jun 2009 16:59:01 GMT
Server Apache/2.2.6 (Fedora)
X-Powered-By PHP/5.2.4
Connection close
Transfer-Encoding chunked
Content-Type text/html; charset=CP-1251
Request Headers
Host www.s-tv.ru
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer http://www.s-tv.ru/index.php?chp=tv
|
Вот код, который претерпел тысячу изменений, но толку ноль:
<?
// Указываем все переменные
$body = "chp=tv&ch_1TV=on&dt=2009-06-08";
// Формируем Content-Length
$body2 = $body.'\r\n\r\n'; $length = strlen($body2);
// On.
$fp2=fsockopen("s-tv.ru",80,$errno,$errstr,10);
$out2 = "POST /index.php?".$body." HTTP/1.0\r\n";
$out2 .= "Host: www.s-tv.ru\r\n";
$out2 .= "Referer: http://www.s-tv.ru/index.php?chp=tv\r\n";
$out2 .= "Connection: Close\r\n\r\n";
fwrite($fp2,$out2.$body2);
$ans2=''; while(!feof($fp2)) { $ans2.=fgets($fp2,1024); }
fclose($fp2);
// Off.
echo $ans2;
?>
|
Никаких js, которые могли бы что-то поменять - не нашёл. Вообще, всё чисто и не понятно.
Помогите разобраться :)
p.s. Помню, примерно год назад пробовал с этого сайта взять инфу, но так и не получилось, в этот раз хотелось бы добиться положительных результатов! | |
|
|
|
|