Парсер сниппетов гугла

Во первых какая проблема то ?
Не парсит или каракули ?!

Да и вообще вот ваш же код только переписаный... Используйте или дополняйте функцию rep_txt и будит счастье...

PHP:
function rep_txt($txt)
{
 
for ($i=0, $n=count($txt); $i<$n; $i++)
{
// Делаем перекодеровку иначе замаритесь потом с mb_
#$txt[$i]=iconv('utf-8', 'windows-1251', $txt[$i]);
 
$txt[$i]=strip_tags($txt[$i], '<b><i><u>');
$txt[$i]=str_replace(
array(
'<b>...</b>'
),
array(
''
),
$txt[$i]
);
$txt[$i]=html_entity_decode($txt[$i]);
$txt[$i]=trim($txt[$i]);
 
}
return $txt;
}
 
$arr=array();
$str=file_get_contents("http://www.google.com/search?q=".urlencode('привет')."&hl=ru&tbs=qdr:y&lr=&sa=X&tbo=1");
 
if(preg_match_all('#<div class="s">.+<cite>#smiU', $str, $text))
$arr=array_merge($arr, rep_txt($text[0]));
 
echo implode('<br>', $arr);

PS. Если код выше вашей работы то хоть и рановато ещё но смотрите в сторону cURL и обертки для него.... В конце концов готовую возмите иначе на file_get_contents вас забанят как делать нечего и очень быстро.
Кароче для начало подтяните свои знания в PHP или не морочте себе голову и закажите нормальный скрипт.
 
Каракули дает. Курл есть, для примера file_get_contents хватает.
html_entity_decode - как варинат, но замена всего алфавита на спецсимволы по типу &#1589; не комильфо.

По поводу заказа, парсеров гугла писано-переписано тысячи раз, как последний вариант может быть...
 
html_entity_decode - как варинат, но замена всего алфавита на спецсимволы по типу &#1589; не комильфо.
Вы наверно перепутали функции... Эта не кодирует а декодирует... Как раз токи от всех мнемоников избовляет.
Если у вас каракули то значит файл в win-1251 а google отдает контент в utf-8
Строчку с iconv каскомментируйте - должно помочь.
 
Назад
Сверху