но я кажется где-то напортачил,что он выдает стринговую ошибку,там где echo...
$_GET['q']=preg_replace('/(\s)+/U','+',$_GET['q']);
$a=file_get_contents("http://www.google.ru/search?q=$_GET[q]&url=$_GET[url]&start=$i");
$b=preg_match_all('/(?:<h3 class="r"><a\shref="http:\/\/)(.+)(?:")/U',$a,$result,PREG_PATTERN_ORDER);
$i=0;
$i=$i+10;
$pos = array_search($_REQUEST['url'],$result[1])+$i+1; //здесь мы прибавили $i
if (in_array($_REQUEST['url'],$result[1]))
// проверяем, есть ли искомый URL на текущей странице
{
echo $pos;echo $_REQUEST['url']; echo $_GET['q'];
break; // уже нашли - значит из цикла выходим
}
//Пользуйтесь стилями оформления кода //Nikitian
Спустя 50 минут, 16 секунд (30.12.2011 - 19:59) Winston написал(а):
Цитата (человекЕ @ 30.12.2011 - 18:09) |
но я кажется где-то напортачил,что он выдает стринговую ошибку,там где echo... |
Какую ошибку ?
Спустя 1 час, 12 минут, 45 секунд (30.12.2011 - 21:12) человекЕ написал(а):
Parse error: syntax error, unexpected T_STRING in C:\apach\Apache2\htdocs\fileget.php on line 28
Спустя 5 минут, 33 секунды (30.12.2011 - 21:18) Winston написал(а):
Посмотри на линию/несколько выше 28 строчки, возможно забыл точку с запятой.
Спустя 12 минут, 43 секунды (30.12.2011 - 21:30) человекЕ написал(а):
28 строчка это
вроде все на месте. код немного изменил(взял старый вариант),результат тотже
echo $pos;echo $_REQUEST['url']; echo $_GET['q'];
вроде все на месте. код немного изменил(взял старый вариант),результат тотже
$pages='100';
for ($i=0;$i<$pages;$i=$i+10)
{
$_GET['q']=preg_replace('/(\s)+/U','+',$_GET['q']);
$a=file_get_contents("http://www.google.ru/search?q=$_GET[q]&url=$_GET[url]&start=$i");
$b=preg_match_all('/(?:<h3 class="r"><a\shref="http:\/\/)(.+)(?:")/U',$a,$result,PREG_PATTERN_ORDER);
$pos = array_search($_REQUEST['url'],$result[1])+$i+1; //здесь мы прибавили $i
if (in_array($_REQUEST['url'],$result[1]))
// проверяем, есть ли искомый URL на текущей странице
{
echo $pos;echo $_REQUEST['url']; echo $_GET['q'];
break; // уже нашли - значит из цикла выходим
}
}
?>
Спустя 6 минут, 35 секунд (30.12.2011 - 21:37) Winston написал(а):
Цитата (человекЕ @ 30.12.2011 - 20:30) |
echo $pos;echo $_REQUEST['url']; echo $_GET['q']; |
Можно заменить на
echo $pos . ' ' . $_REQUEST['url'] . ' ' . $_GET['q'];
Попробуй закомменитить каждую строчку, начиная от if и идя вверх.
Спустя 7 минут, 57 секунд (30.12.2011 - 21:45) killer8080 написал(а):
человекЕ
вот так делать нельзя
правильно так
вот так делать нельзя
$_GET['q']=preg_replace('/(\s)+/U','+',$_GET['q']);
правильно так
$_GET['q'] = urlencode($_GET['q']);
Спустя 7 минут, 19 секунд (30.12.2011 - 21:52) человекЕ написал(а):
спасибо.
и эффект будет такой же?
и эффект будет такой же?
Спустя 4 минуты, 48 секунд (30.12.2011 - 21:57) человекЕ написал(а):
никто не пробовал делать свой скрипт ,который искал бы по ключевому слову позицию своего сайта в гугле?
Спустя 2 минуты, 1 секунда (30.12.2011 - 21:59) killer8080 написал(а):
Цитата (человекЕ @ 30.12.2011 - 20:52) |
спасибо. и эффект будет такой же? |
если в запросе кирилица, то твой вариант вообще может не работать. Нужно формировать url по стандарту.
Кстати, гугл не банит такие запросы в цикле? Может стоит добавить задержку между запросами?
Спустя 16 часов, 32 минуты, 59 секунд (31.12.2011 - 14:32) человекЕ написал(а):
человеки, где я напортачил с циклом?
<?php
$pages='100';
for ($i=0;$i<$pages;$i=$i+10)
{
$_GET['q']=urlencode($_GET['q']);
$a=file_get_contents("http://www.google.ru/search?q=$_GET[q]&url=$_GET[url]");
$b=preg_match_all('/(?:<h3 class="r"><a\shref="http:\/\/)(.+)(?:")/U',$a,$result,PREG_PATTERN_ORDER);
$_GET['q']=urldecode($_GET['q']);
$pos = array_search($_REQUEST['url'],$result[1])+$i+1; //здесь мы прибавили $i
if (in_array($_REQUEST['url'],$result[1]))
//проверяем, есть ли искомый URL на текущей странице
{
echo $_REQUEST['url']."".$pos."". $_GET[q];
break;
sleep(10);
echo $_REQUEST['url']."".$pos."". $_GET[q];
break; // уже нашли - значит из цикла выходим
}
}
?>
Спустя 2 часа, 20 минут, 41 секунда (31.12.2011 - 16:53) walerus написал(а):
$_GET[q]- ключ, если он НЕ переменная, пишется в кавычках
$_GET['q']
$pages='100';Этого вообще не понял
for ($i=0;$i<$pages;$i=$i+10)
$i=$i+10, а нельзя было просто $pages указать равным 10 ?
Спустя 12 минут, 59 секунд (31.12.2011 - 17:06) killer8080 написал(а):
человекЕ
ну я ж говорил, в цикл нужно вводить задержку, желательно рандомную. От такого шторма запросов гугл наверняка забанит ip, или выставит капчу. Да и юзер-агент не мешало бы подделать.
PS а где потерял &start=$i" в запросе.
ну я ж говорил, в цикл нужно вводить задержку, желательно рандомную. От такого шторма запросов гугл наверняка забанит ip, или выставит капчу. Да и юзер-агент не мешало бы подделать.
PS а где потерял &start=$i" в запросе.
Спустя 42 минуты, 26 секунд (31.12.2011 - 17:48) человекЕ написал(а):
спасибо.
точно,потерял.
не совсем понял walerusa .
____________________________________________
заработало,корявато но выдал мне результат. осталось доработать.т.к. результат не всегда есть
точно,потерял.
не совсем понял walerusa .
$pages='100';вот это для того,чтобы $i вставлялась в &start=$i (от страницы 0 до 100(по +10 прибавляла))если ,допустим,не найден ответ на запрос,то ищет дальше от 0 и до 100 стр.
for ($i=0;$i<$pages;$i=$i+10)
____________________________________________
заработало,корявато но выдал мне результат. осталось доработать.т.к. результат не всегда есть
set_time_limit(25);
sleep(5);
$pages='100';
for ($i=0;$i<$pages;$i=$i+10)
{
$_GET['q']=urlencode($_GET['q']);
$a=file_get_contents("http://www.google.ru/search?q=$_GET[q]&url=$_GET[url]&start=$i");
$b=preg_match_all('/(?:<h3 class="r"><a\shref="http:\/\/)(.+)(?:")/U',$a,$result,PREG_PATTERN_ORDER);
$_GET['q']=urldecode($_GET['q']);
$pos = array_search($_REQUEST['url'],$result[1])+$i+1; //здесь мы прибавили $i
if (in_array($_REQUEST['url'],$result[1]))
//проверяем, есть ли искомый URL на текущей странице
{
echo $_REQUEST['url']."".$pos."". $_GET['q'];
break; // уже нашли - значит из цикла выходим
}
}
?>
Спустя 3 минуты, 49 секунд (31.12.2011 - 17:52) человекЕ написал(а):
почему то иногда дает это,может из-за того,что долго грузит,поэтому в 25 сек не успевает ?
Fatal error: Maximum execution time of 25 seconds exceeded in C:\apach\Apache2\htdocs\fileget.php on line 19
Fatal error: Maximum execution time of 25 seconds exceeded in C:\apach\Apache2\htdocs\fileget.php on line 19
Спустя 8 минут, 16 секунд (31.12.2011 - 18:00) killer8080 написал(а):
человекЕ
в начале поставь
в начале поставь
set_time_limit(0);
ignore_user_abort(true);
Спустя 11 минут, 12 секунд (31.12.2011 - 18:11) человекЕ написал(а):
все нашел проблему.
почему то скрипт не дает рез-ат если написано 2 слова.
почему то скрипт не дает рез-ат если написано 2 слова.
Спустя 34 минуты, 2 секунды (31.12.2011 - 18:45) Guest написал(а):
спасибо