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

Небольшая доработочка Генезиса

Дата: Сентябрь 11, 2009 - 1:21 дп No Comments

По  просьбе Bill_G, я внес небольшие изменения в код genesis-а, позволяющие располагать Репозиторий с книжками на разных дисках. (далее…)

Простая система кэширования на 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));
}