PDA

Просмотр полной версии : Ребята помогите, подскажите работа с curl


__XT__
06.09.2008, 19:26
for ($p = 0; $p < 10; $p++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 1);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
$ss=explode("\n",curl_exec($ch));
$res=join("",$ss);
curl_close($ch);
}

.....



Ребята вообщем такая делема, надо в цикле preg_match -ем поискать текст - с етим всё понятно.

но тема в том что не получаеться заставить работать курлы в цикле(((

CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
читаеться только одна страница.

Пожалуйста подскажите в чём беда.

GreenBear
06.09.2008, 19:33
ты ведь переменную перезаписываешь =\

__XT__
06.09.2008, 19:37
можешь код накидать как будет в цикле работать?

чтобы мне более детально разобраться.
-спасибо-

Doom123
06.09.2008, 20:02
а зах ты переменую перезаписываеш? из цикла выйдет только результат последнего запроса ...
может так сделать? $res[]=join("",$ss);


CURLOPT_CONNECTIONTIMEOUT - что это оО на php.net ненашёл эту константу

__XT__
06.09.2008, 20:04
Я понял про $ch какие могут быть пути решения?

GreenBear
06.09.2008, 20:25
чет ты чушь несешь непонятную
что тебе надо ?

.:EnoT:.
06.09.2008, 20:31
XT привет)
Если я правильно понял нужно, отпарсить n страниц и на каждой из них взять регуляркой какую-либо инфу и потом всё это дело вывести.
Если так, то могу предложить вот что:
<?php
for ($p = 0; $p < 10; $p++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 1);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
$ss = curl_exec($ch);
preg_match_all('#....#Us', $ss, $out);
$result .= join('<br/>', $out[1]);
curl_close($ch);
}
echo $result;
?>

__XT__
06.09.2008, 20:35
=====

for ($p = 0; $p < 10; $p++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 1);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
$ss=explode("\n",curl_exec($ch));
$res[]=join("",$ss);
curl_close($ch);
}
if(preg_match("/sex/i", $res[$p])){
print "Ура нашёл!";
}

============


Мне надо чтобы в яндексе по страничкам искалось слово "sex". и урлы записывались в файл.

Я всё понимаю как делать кроме поточности курлов.
т.е. не получаеться запустить курлы в цикле, чтобы читали разнеые странички а не последнюю.

__XT__
06.09.2008, 20:43
Enot привет спасибо большое но там где то ошибка у тебя в джоин ..не работает.

Doom123
06.09.2008, 20:49
мдаа ....


$a = fopen('urls.txt','a+');
for ($p = 0; $p < 10; $p++) {
$url = "http://yandex.ru/yandsearch?p=".$p."&text=test";
$f = file_get_contents($url);
if(strpos($f,'sex'))
fwrite($a,$url."\r\n");
}
fclose($a);

__XT__
06.09.2008, 20:53
Дум)) спасибо неть.
я немножко перепутал надо чтобы искался контент с словом секс и записывался в файл.

__XT__
06.09.2008, 20:59
ВОТ твёрдая задача:
надо чтоб искались слова в яндексе с "sex" и записывались в файл.
Я всё понимаю как сделать кроме запуска курлов для многих страниц.
с циклом не получаеться дружить(((

__XT__
06.09.2008, 21:06
Ребята маску прегматча поиск и запись я всё сделаю, мне только важно чтобы кто нибудь показал как в цикле по страничкам бегать и выводить с каждой какой нить контент дял примера.

Doom123
06.09.2008, 21:14
__XT__ зах делать всё через жопу когда можно обойтись одним file_get_contents

Gifts
06.09.2008, 21:18
Зачем тебе курл, ты объяснить можешь?

$ya=file_get_contents('http://yandex.ru/yandsearch?p='.$p.'text=sex');
// Выдираем все ссылки
$i=preg_match_all и т.д.
for ($j=0;$j<$i;$i++)
{
$tmp=file_get_contents(переменная из регулярки);
if (preg_match('/sex/i')) $out[]=$tmp;
}
//выводим, как нам хочется
print_r($out);

__XT__
06.09.2008, 21:30
курл мне нужен т.к. работа с куками с агентом, с рефером будет.
других способов помимо курла я не знаю.
я спец написал помогите работе с курлами))
тт.к. планы на программку большие...не понятен только один момент.
курлы в циклах и вывод какой нит ьстроки с каждого запроса:
просто для примера чтоб видно что работают все запросы а не последний.

GreenBear
06.09.2008, 22:27
ТЫ ЖЕ СДЕЛАЛ ВСЕ!!!!!