Приятные мелочи на php

Пишу эту заметку для себя, вдруг мне пригодиться, в моем компьютере потеряется, а тут на блоге останется навсегда — да и Вам может пригодиться ;-).
Две маленькие функции на php:
- Определение Тематического Индекса Цитирования
- Многоязычный переводчик
Определение ТИЦ
Берет значения тИЦ напрямую из Яндекс.Каталога, очень быстрая скорость работы. Писал не Я, писал .
<?php
function yandex_tic($url){
$file=file_get_contents("http://search.yaca.yandex.ru/yca/cy/ch/$url/");
if(preg_match("!—\s+([0-9]{0,8})<\/b>!is",$file,$ok)){
// сайт не в каталоге.
$str=$ok[1];
}
else if(preg_match("!<td class=\"current\" valign=\"middle\">(.*?)</td>\n</tr>!si", $file, $ok)){
if(preg_match("!<td align=\"right\">(.*?)</td>\n</tr>!si", $ok[0], $str)){
// сайт в каталоге.
$str=$str[1];
} else {
$str=0;
}
}
else {
$str=0;
}
return trim($str);
}
// Пример:
// echo yandex_tic("zhilinsky.ru")
?>
Многоязычный переводчик
Работает через .
Работает быстро. Писал Я, на коленке, поэтому криво, если будут замечания — пишите! Я исправлюсь ;-)
<?php
function translate($text,$lg) {
$lg = urlencode($lg);
$text = urlencode($text);
$link = file_get_contents("http://google.com/translate_t?langpair=$lg&text=$text");
preg_match('/<div id=result_box dir=\"ltr\">(.*?)<\/div>/', $link, $out);
return $out[1];
}
// Пример:
// echo translate("hello")
// Пример c другим языком(С Английского на Немецкий):
// echo translate("hello", "en|de")
?>

Вполне неплохо, но пригодится только для маленьких заданий. Иначе забанят негодяи :) Попомучался я пару дней с переводом городов мира при помощи этого транслятора. Даже прокси не каждые помогали. Еще и сейчас товарищ мучается, продолжает. И как оказалось, для транслятора недавно открыли доступный API :)
А про тиц еще вот хорошая заметка.
http://kurilka.co.ua/archives/alternative-variants-receipt-cy – на основе распознавания текста с картинки. Хотя, уверен, Вы с ней (заметкой) знакомы :)
Днями просиживаю штаны в интернете, а про переводчик от гугля первый раз слышу… чудеса :-O
Они только недавно открыли свое API по переводчику.
А как сервис гугля переводчик живет уже оооочень давно
file_get_contents(«http://…»):
Это ужас, никогда так не пишите! ТОЛЬКО с помощью сокетов или cURL.
Ну гореть мне в пхп аду :-). А чем плох этот метод? Работает ведь!
Этот метод работает но не везде и не во всех ситуациях. И вот несколько причин подтверждающих это:
1. file_get_contents работает только с удаленными хостами толдько при включенной директиве allow_url_fopen в php.ini (установить эту директиву в .htaccess или скрипте нельзя). Как правило хостеры ее отключают. По крайней мере умные.
2. file_get_contents не имеет параметра тайм-аута, что самое важное,т.к. в случае если сайт не отвечает или тяжело отвечает, скрипт может легко «подвиснуть».
3. Если где-то используется file_get_contents и случайно пропущена обработка возможности ошибочного входного параметра, то может быть XSS или переполнения буфера.
4. Нет возможности указать порт, по которому необходимо соединиться с сервером.
$ctx = stream_context_create(array(http://…' , 0, $ctx);
‘http’ => array(
‘timeout’ => 60
)
)
);
$img = @file_get_contents(‘
To: Strike
Все там есть и порт и прокси даже указать можно, если ничего не знаешь – зачем писать про эту функцию.
Вот тебе еще
// Define a context for HTTP.
$aContext = array(
‘http’ => array(
‘proxy’ => ‘tcp://127.0.0.1:8080′, // This needs to be the server and the port of the NTLM Authentication Proxy Server.
‘request_fulluri’ => True,
),
);
$cxContext = stream_context_create($aContext);
// Now all file stream functions can use this context.
$sFile = file_get_contents(«http://…», False, $cxContext);
echo $sFile;
а вот русский не хавает :(
по примеру переводчика хотел сделать парсер текстов песен! но что то не работает, может кто поможет? мне кажеться очень полезно было бы. вот код:
<?php
function text($artist,$title) {
$title = urlencode($title);
$artist = urlencode($artist);
$link = file_get_contents(«http://www.lyricsplugin.com/wmplayer03/plugin/?artist=$artist&title=$title»);
preg_match(‘/(.*?)/’, $link, $out);
return $out[1];
}
//http://www.lyricsplugin.com/wmplayer03/plugin/?artist=Каста&title=Ревность
echo text(«Каста», «Ревность»)
?>
Айпи постоянно банится.
Fantastic submit admin! i bookmarked your word wide web blog. i’ll search ahead should you will have an e-mail record including.
Greetings thanks for wonderful submit i used to be browsing for this issue survive a couple of days and nights. I’ll look for following precious posts. Have fun admin.
I was curious about your future article admin definitely essential this blog site super wonderful weblog
I was searching for this blog site survive three or more days wonderful webpage owner great posts every thing is superb
Terrific submit admin thank you. I found what i was trying to find here. I will review entire of posts in this time of day
Great article admin thank you. I discovered what i was trying to find here. I’ll review whole of posts in this evening
Genuinely required post admin fantastic one particular i bookmarked your website webpage see you in upcoming blog site put up.
Great 1 weblog manager achievements blog site put up great sharings with this web site always have enjoyable