Небольшая доработочка Генезиса
По просьбе Bill_G, я внес небольшие изменения в код genesis-а, позволяющие располагать Репозиторий с книжками на разных дисках. (далее…)
По просьбе Bill_G, я внес небольшие изменения в код genesis-а, позволяющие располагать Репозиторий с книжками на разных дисках. (далее…)
<?
$cacheFile = ‘cache.html’;
if ( (file_exists($cacheFile)) && ((fileatime($cacheFile) + 600) > time()) )
{
$content = file_get_contents($cacheFile);
echo $content;
} else
{
ob_start();
// write content
echo ‘
‘;
$content = ob_get_contents();
ob_end_clean();
file_put_contents($cacheFile,$content);
echo $content;
}
?>
Это конечно все очень просто, для доработки надо чтобы название файла созадавалось как md5 строки запроса и если страниц много, то разбивалось по каталогам, называющимися первой буквой имени файла (это нужно, т.к. скорость доступа к большому количеству файлов в файловой системе при их большом количестве).
Я доработал такой алгоритм и скоро опубликую его.
В предыдущем посте я озвучил проблему описания большого количества книг. Как один из путей повышения скорости описания я вскольз упоминул о возможности выдрать описания с какой либо онлайновской библиотеки, например, инфанаты. Что-ж, сказано - приступил к реализации.
Наверное те кто решил монетизировать свой блог, ставили какие либо плагины для “обертывания” прямых внешних ссылок из текста в “непрямые”, через какой нить редирект, на пример. Это нужно для уменьшениея внешних ссылок на станице, что ценится оптимизаторами.
Мне на глаза попался плагин 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>
С таки файлом редирект работает правильно и без ошибок.
Некоторые скажут что есть стандартная функция, для вырезки ВСЕХ 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));
}