В продолжение серии противоправных постов.
Функции для парсинага результатов поиска гугла, яндекса и рамблера.
Для работы нужен curl, хотя можно переписать с простым fopen. Curl используется в надежде на большую продолжительность работы без бана (добавляет user-agent мозилу).
Ключевая функция fuckit($word, $by), где word - строка для поиска, by - какой поисковик юзать (1-yandex, 2-google, 3-rambler). возвращает данные массивом:
array(array(title, desc, url, place),array(title, desc, url, place)….)
Но помните!!!
Поисковики против этого, они не любят, чтоб их парсили, а им не говорили. Сие противозаконно. Так что, будте бдительны! 
Формат выдачи поисковиков также периодически меняется, так что со временем могут быть ошибки…
(дальше…)
Cross Browser Keyboard Handler by Santosh Rajan
Как ловить onkeydown и onkeypress во всех браузерах сразу.. Также разделяет события на char и non-char.
document.onkeydown = function(e) {handleKeys(e)}
document.onkeypress = function(e) {handleKeys(e)}
var nonChar = false;
function handleKeys(e) {
var char;
var evt = (e) ? e : window.event; //IE reports window.event not arg
if (evt.type == "keydown") {
char = evt.keycode;
if (char < 16 || // non printables
(char > 16 && char < 32) || // avoid shift
(char > 32 && char < 41) || // navigation keys
char == 46) { // Delete Key (Add to these if you need)
handleNonChar(char); // function to handle non Characters
nonChar = true;
} else
nonChar = false;
} else { // This is keypress
if (nonChar) return; // Already Handled on keydown
char = (evt.charCode) ?
evt.charCode : evt.keyCode;
if (char > 31 && char < 256) // safari and opera
handleChar(char); //
}
if (e) // Non IE
Event.stop(evt); // Using prototype
else if (evt.keyCode == 8 ) // Catch IE backspace
evt.returnValue = false; // and stop it!
}
Небольшая функция, которая парсит страницу с результатами поиска Google, возвращает количество записей.
function google_search_result_count($q){
$path = ‘http://www.google.com/search?q=’.$q.’&hl=en&lr=&ie=UTF-8&filter=0′;
if(!file_exists($path)) {
$data = str_replace(’ ’, ‘ ‘, strtolower(strip_tags(@implode(”, @file($path)))));
if(!strpos($data, ‘did not match any documents’)) {
$data = substr($data, strpos($data, ‘web results’)+12, strlen($data));
$data = trim(substr($data, 0, strpos($data, ‘for’))); //echo $data; // TEST
$data = explode(’ ‘, $data);
$data = $data[(count($data)-1)];
return (int)str_replace(array(”,”,”.”),”",$data);
} else {
return 0;
}
} else {
return 0;
}
}
А также sql-дамп таблицы с ангийскими существительными и аббревиатурами (примерно 55,000 слов), и значениями количества результатов их четкого вхождения (q=”$word”). скачать.
Слова-двумиллиардники:
- are
- can
- contact
- copyright
- have
- help
- home
- html
- information
- mail
- may
- more
- one
- out
- page
- privacy
- search
- site
- there
- use
- will
- www
- time
- top
- web
- view
- like
Библиотеки для трехмерных… ээ.. манипуляций во flash’е
demo1 demo2 demo3
demo1 demo2 demo3