Теги записей ‘php’

Прикручиваю Transmission bittorent-клиент к своей качалке

Дата: Сентябрь 24, 2010 - 12:42 дп No Comments

На глаза попал очень интересный клиент под *nix который работает как демон-торрент-клиент – Transmission.

Мне такой клиент очень даже нужет, т.к. семейных нервирует что постоянно запускается командное окно с добавлением файлов на скачку uTorrent-у.

кроме того что этот демон будет работать на виртуалке он еще имеет огромный плюс в том, что существует класс на php (да и на Python тоже), с помощью которого можно добавлять, удалять, перемещать, проверять и т.п. торренты (вот спецификация)! Это как раз мне и нужно, чтобы сделать полностью автономный комплекс для скачки книг.

После недолгих экспериментов я прикрутил добавление заданий в трансмишшен для скачки из моей качалки торрентов. Процесс изучения идет!.

Обнаружилось то что с помощью класса на php нельзя получить информацию по сессии трансмишшена, но эта мелкая неприятность устраняется добавлением новой функции в класс!

Посмотрим как будет вести себя трансмишшен под нагрузкой в пару тысяч торрентов… В данный момент уТоррент начинает тормозить (ИМХО). Вообщем проводим эксперименты и смотрим.

2010-10-13 : Субъективно до 1000 торрентов трансмишшен работает нормально, но после этого порога вроде бы начинает тупить и качать очень медленно.

Простая система кэширования на php

Дата: Март 31, 2009 - 10:19 пп No Comments

<?

$cacheFile = ‘cache.html’;

if ( (file_exists($cacheFile)) && ((fileatime($cacheFile) + 600) > time()) )
{
$content = file_get_contents($cacheFile);
echo $content;
} else
{
ob_start();
// write content
echo ‘

Hello world to cache

‘;
$content = ob_get_contents();
ob_end_clean();
file_put_contents($cacheFile,$content);
echo $content;
}
?>

Это конечно все очень просто, для доработки надо чтобы название файла созадавалось как md5 строки запроса и если страниц много, то разбивалось по каталогам, называющимися первой буквой имени файла (это нужно, т.к. скорость доступа к большому количеству файлов в файловой системе при их большом количестве).

Я доработал такой алгоритм и скоро опубликую его.

Книгомания – парсер Инфанаты.

Дата: Март 12, 2009 - 6:49 дп No Comments

В предыдущем посте я озвучил проблему описания большого количества книг. Как один из путей повышения скорости описания я вскольз упоминул о возможности выдрать описания с какой либо онлайновской библиотеки, например, инфанаты. Что-ж, сказано – приступил к реализации.

(далее…)

WordPress и wp-noexternallinks

Дата: Февраль 13, 2009 - 4:35 дп No Comments

Наверное те кто решил монетизировать свой блог, ставили какие либо плагины для “обертывания” прямых внешних ссылок из текста в “непрямые”, через какой нить редирект, на пример. Это нужно для уменьшениея внешних ссылок на станице, что ценится оптимизаторами.

Мне на глаза попался плагин wp-noexternallinks, который все ссылки пропускает через файл goto.php, для чего нужно пставить плагин, активировать, настроить его и прописать в .htpaccess строчку преобразования url-а (все это написано в документации).

Я поставил его, сделал все как написано, но при нажатии ссылки сначала выдавались некии ошибки на странице редиректа (goto.php) потом происходил редирект на испорчнеый адрес (к адресу добавлялася символ ; ).

Незнаю, толи у меня руки кривые, толи плагин кривоват, но я выкинул из этого файла все ненужно и убрал этот добавленый зачем то символ. Вот что осталось:

<?php
header(‘Content-type: text/html; charset=”utf-8″‘,true);
$url=$_SERVER['QUERY_STRING'];
if($url)
{
$url=’http://’.urldecode($url);
@header(‘Location: ‘.$url);
}
?>
<html>
<head>
<title></title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta name=”robots” content=”noindex,nofollow” />
<?php if($url) echo ‘<meta http-equiv=”refresh” content=”0; url=’.$url.’” />’; ?>
</head>
<body style=”margin:0;”>
Redirecting…
</body>
</html>

С таки файлом редирект работает правильно и без ошибок.

Код для вырезки из текста THML тэгов.

Дата: Февраль 12, 2009 - 8:16 дп No Comments

Некоторые скажут  что есть стандартная функция, для вырезки  ВСЕХ HTML тэгов… а я предлагаю Вам код который вырезает только указанные тэги, или оставляет только указанные тэги.

Это может быть полезно, например для вырезки ненужных тэков в комментариях.

/**
* Allow these tags
*/
$allowedTags = ‘<h1><b><i><a><ul><li><pre><hr><blockquote>’;

/**
* Disallow these attributes/prefix within a tag
*/
$stripAttrib = ‘javascript:|onclick|ondblclick|onmousedown|onmouseup|onmouseover|’.
‘onmousemove|onmouseout|onkeypress|onkeydown|onkeyup’;

/**
* @return string
* @param string
* @desc Strip forbidden tags and delegate tag-source check to removeEvilAttributes()
*/
function removeEvilTags($source)
{
global $allowedTags;
$source = strip_tags($source, $allowedTags);
return preg_replace(‘/<(.*?)>/ie’, “‘<’.removeEvilAttributes(‘\\1′).’>’”, $source);
}

/**
* @return string
* @param string
* @desc Strip forbidden attributes from a tag
*/
function removeEvilAttributes($tagSource)
{
global $stripAttrib;
return stripslashes(preg_replace(“/$stripAttrib/i”, ‘forbidden’, $tagSource));
}

Новый раздел – В помощь PHP программисту.

Дата: Февраль 10, 2009 - 7:12 дп No Comments

С сегодняшнего дня  я начинаю новую рубрику – В помощь PHP программисту.

В данном разделе я буду размещать все, что я считаю интересным по данной теме. Я сам програмлю на досуге уже пару лет, поэтому я найду что Вам сказать :)

Увеличиваем количество страниц в satellite-x

Дата: Октябрь 24, 2008 - 1:55 пп No Comments

Недавно в satellite-x появилась замечательная функция – галерея. Настраивается в 2 клика и работает достаточно шустро. Мы же усовершенствуем ее путем увеличения количества страниц – сделаем, чтобы можно было при клике на картинку посмотреть картинку в оригинальном размере.

Делает это очень просто:

(далее…)