PHP скрипты
Как вы наверное знаете, я немного PHP программист. Я не считаю себя профессионалом, который решит задачу любой сложности. Я не использую ООП, и мой код частенько похож невнятную мешанину(отчасти из-за незнания, отчасти из-за лени и постоянных исправлений). Кто смотрел мои скрипты, думаю, знает это) Но это не мешает мне решать задачи, которые я перед собой ставлю - начиная от банального парсинга кеев и заканчивая хитрой авторизацией в яндексе, а так же взаимодействия с различными API (TopSape тому пример). Но если есть готовый скрипт - зачем изобретать велосипед? К сожалению, скрипты (как самописные, так и найденные в инетрнете) имеют свойство теряться. Поэтому я решил складировать их здесь, как для собственных нужд (проще зайти на свой блог и скопировать функцию, чем шариться по компу в поисках файлика), так и для общего пользования (вдруг кто-то захочет свой сервис открыть, или полезный скрипт написать). Преимущественно здесь будут скрипты, связанные с парсингом, автоматизацией, упрощению рутины и т.д. Использвать можете как угодно, только не продавайте (опен сорц рулит!). Итак, начнем:
FeedBurner Counter
function fb($feed){
$s=file_get_contents("http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri={$feed}");
preg_match('/circulation="(\d+)"/', $s, $a);
return $a[1];}
Все просто - выводит число подписчиков фида. Можно указывать как полный адрес, так и частичный (Spryt к примеру). Если показывается на картинке - будет показываться и здесь (в админке фидбурнера можно закрыть доступ). Во время обновления выдает 0, что не очень удобно..
Alexa Rank
function alexa($url) {
preg_match('#<div class="data .+?">(.*?)</div>#si', file_get_contents("http://www.alexa.com/siteinfo/{$url}"), $a);
return trim(str_replace(",","",strip_tags($a[1])));}
Вводим адрес сайта (без http://) - получаем его Alexa Rank. Алекса может обидится (раньше всячески препятствовал парсинга), так что аккуратнее.
Яндекс: тИЦ
function cy($url){
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }
Довольно компактный парсер тИЦа. Может дольше обновляется, чем на кнопке/в каталоге. Писал не я (некоторые моменты я тоже не вкурил - работает, и ладно).
Яндекс: число страниц в индексе
function ya_stat($url){
$str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}");
preg_match("\/<title>(.*)нашл(.*)сь(.*)страниц(.*)</title>/s", $str, $find); $res=$find[3];
if(preg_match("/<title>(.*)ничего не найдено(.*)<\/title>/s", $str)) {$res=0;}
$res=str_replace(" ","",$res);
$res=str_replace("млн","000000",$res);
$res=str_replace("тыс.","000",$res);
return $res;}
Самописная байда. Использую уже довольно давно) Возможны траблы с кодировкой, используйте UTF-8. Обратите внимание на ограничения яндекса - он запросто может ограничить IP и выдавать ему капчу (если парсите сразу пачку сайтов). Между запросами лучше установить случайный интервал, вроде sleep(5,rand(1,5));
Веб прокси
echo file_get_contents($_GET['q']);
$content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); //Использование
Можно конечно использовать прокси - но это гораздо сложнее (надо парсить списки, собирать курл запрос и т.д.). А так просто размещаете на своих хостингах с разными IP файлик proxy.php, и потом скриптом случайно выбираете адрес и парсите с него. Только проверьте предварительно (некоторые хостеры закрывают доступ). Я такой начал использовать для твиттера (у него ограничение 150 запросов в час).
LiveInternet статистика
function listat($url){
$content = file_get_contents("http://counter.yadro.ru/values?site=".$url);
preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);
for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];
return $info;}
//Использование
$ff=listat($url);
$w_vis=floor($ff[week_vis]/7);
$w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю
$li_vis=$ff[day_vis];
$li_hit=$ff[day_hit];//И дневная посещаемость
echo "Week $w_vis / $w_hit, today $li_vis / $li_hit";
Информация для счетчика LiveInternet. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих.
Смайлик Лебедева (ссылки из ППБ на блог)
<?php
$url=“topsape.ru”;
$content=file_get_contents(“http://blogs.yandex.ru/search.xml?link={$url}”);
$content=iconv(“UTF-8″,“Windows-1251″,$content);
preg_match_all(“/<h3 class=\”title \”><a href=\”(.*)\” class=\” SearchStatistics-link\” target=\”_blank\”>(.*)<\/a><\/h3>(.*)<div class=\”b-text \”>\n\n(.*)<\/div><\/div><div class=\”long g-hidden ItemMore-Description\”>(.*)<ul class=\”info b-hlist b-hlist-middot\”>(.*)<li><a href=\”(.*)\”>(.*)<\/a><\/li>/”, $content, $link);
$str=“<div style=\”width: 300; padding: 5px; border: 1px gray dotted;\”>”;
for ($i=0; $i<10; $i++) {
if(strlen($link['1'][$i])>0) {$str.=“<b><a href=\”{$link[1][$i]}\”>{$link[2][$i]}</a></b><br>{$link[4][$i]} (<a href=\”{$link[7][$i]}\”>{$link[8][$i]}</a>)<br><br>”;}
}
$str=substr($str,0,-4);
$str.=“<div align=right>Ссылки из <a href=\”http://blogs.yandex.ru/search.xml?link={$url}\”>ППБ</a></div></div>”;
echo $str;
?>
Список последних 10 сайтов, которые ссылались на вас. Используется поиск по Яндекс.Блогам. Не учитываются ссылки с твиттера. В RSS отображаются только 5 последних ссылок, и только три актуальны, поэтому парсится напрямую с выдачи.
Продолжение следует! Если нужны какие-нибудь простенькие скрипты, который буду здесь уместны - обращайтесь.
Полезные ссылки:
SeoClass.php от Madbirdy (тИЦ, PR, страниц в индексе яндекса и гугла, серп яндекса и гугла)
Twitter скрипты с моего буржуйского блога - Превью пользователя, число фолловеров и френдов, бот для автоматического фолловинга и его применение (лень сюда переписывать).

Спасибо за подборку скриптов. В принципе все очевидно, но думаю, что новичкам, или людям не приближенным к делам веб-кодинга будет полезно.
Интересует скриптик для парсинга, и подобные ему)
Но впринципе, эти, по большей мере стандартные, тоже найдут свое применение.
Спасибки за скрипты. А можешь выложить код показа заработка на адсенс как в сайдбаре?
Скрипт проверки PR
$googlehost=’toolbarqueries.google.com’;
$googleua=’Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5′;
function StrToNum($Str, $Check, $Magic) {
$Int32Unit = 4294967296;
$length = strlen($Str);
for ($i = 0; $i = $Int32Unit) {
$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
$Check = ($Check >= 2;
$Check1 = (($Check1 >> 4) & 0×3FFFFC0 ) | ($Check1 & 0×3F);
$Check1 = (($Check1 >> 4) & 0×3FFC00 ) | ($Check1 & 0×3FF);
$Check1 = (($Check1 >> 4) & 0×3C000 ) | ($Check1 & 0×3FFF);
$T1 = (((($Check1 & 0×3C0) << 4) | ($Check1 & 0×3C)) <<2 ) | ($Check2 & 0xF0F );
$T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0×3C00)) <= 0; $i –) {
$Re = $HashStr{$i};
if (1 === ($Flag % 2)) {
$Re += $Re;
$Re = (int)($Re / 10) + ($Re % 10);
}
$CheckByte += $Re;
$Flag ++;
}
$CheckByte %= 10;
if (0 !== $CheckByte) {
$CheckByte = 10 - $CheckByte;
if (1 === ($Flag % 2) ) {
if (1 === ($CheckByte % 2)) {
$CheckByte += 9;
}
$CheckByte >>= 1;
}
}
return ‘7′.$CheckByte.$HashStr;
}
function getch($url) { return CheckHash(HashURL($url)); }
function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
$out = “GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n”;
$out .= “User-Agent: $googleua\r\n”;
$out .= “Host: $googlehost\r\n”;
$out .= “Connection: Close\r\n\r\n”;
fwrite($fp, $out);
while (!feof($fp)) {
$data = fgets($fp, 128);
$pos = strpos($data, “Rank_”);
if($pos === false){} else{
$pr=substr($data, $pos + 9);
$pr=trim($pr);
$pr=str_replace(”\n”,”,$pr);
return $pr;
}
}
fclose($fp);
}
}
использование:
$pr = getpr($url);
Your English leaves much to be desired. Это судя по блогу тому, хотя молодец, что начал прорываться в буржунет.
Думаю, что мне будет удобнее начинать учить пхп по твоим нано-скриптам )
Особенно весело будет изучать пхп, в дополнение к уже слегка изученному и активно используемому питону.
Спасибо.
Сохранил страничку себе. Правда при парсинге Яндекса возможен бан по ip, лучше пользоваться проксями.
было бы полезно еще видеть скриптец с последними фразами, по которым пришли на сайт
присоединяюсь к Seoved. Ты парсишь страницу непосредственно с аккаунта или через API?
За прокси спасибо, как-то и не подумал бы…
присоединяюсь к Seoved. Не собираешься парсер Адсенс выложить? и вообще - помню раньше у них нельзя было доходы разглашать, а теперь можно?