Кэширование на WP #

заменить index.php и создать для записи каталог в корне cache и поставить chmod 777

$filename = 'cache/'.md5($_SERVER['REQUEST_URI']).'.html';

$cached = false;

if (file_exists($filename)) {
if ((time()-filemtime($filename))<6160) {
$cached = true;
} else {
unlink($filename);
$cached = false;
}
}

if ($cached) {
readfile($filename);
} else {
ob_start();

// WP
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
//

$text = ob_get_clean();

$fh = fopen($filename, 'w+');
fwrite($fh, $text);
fclose($fh);

echo $text;
}
?>

Блог » PHP / Теги: кэш, wp / 05.03.10 / Комментировать [0]

Ошибка Call to undefined function json_decode() или json_encode() #

Это значит, что у Вас не определяется функция json_decode() или json_encode(). А это может быть в случае если у вас php ниже 5.2.0.

Как это пофиксить без обновления:

Качаем либу http://mike.teczno.com/JSON.tar.gz

Вставляем где нужно:
if( !function_exists('json_encode') ) {
    function json_encode($data) {
        $json = new Services_JSON();
        return( $json->encode($data) );
    }
}

// Future-friendly json_decode
if( !function_exists('json_decode') ) {
    function json_decode($data, $bool) {
        if ($bool) {
            $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
        } else {
            $json = new Services_JSON();
        }
        return( $json->decode($data) );
    }
}


Подключаем либу:
include("JSON.php");


Всо -) пс, ТыЦ Дэсять -)

Все страницы внизу новостей в DataLife #

Открыть show.short.php

Найти
if($pages_count > 10)

Заменить на
if($pages_count > 100000)


А еще немного статистики за 2009:
Все страницы внизу новостей в DataLife

Все страницы внизу новостей в DataLife

WP без MySQL #

Плагин PDO SQLite отлично решает вопрос переходом на файловую базу с нативной поддержкой в PHP
Опять же, бэкап исчерпывается копированием файла.

Перед запуском установки WP разворачиваем содержимое папки из архива в wp-content и пишем в wp-config.php строчку define('DB_TYPE', 'sqlite');

Если вылитает ошибка:
Warning: implode() : Invalid arguments passed in /wp-includes/post.php on line 1762

То, Нужно добавить в функцию escape() в /wp-content/pdo/db.php поддержку массивов:
function escape($string) {
if ( is_array($string) ) {
foreach ( (array) $string as $k => $v ) {
if ( is_array($v) )
$string[$k] = $this->escape( $v );
else
$string[$k] = addslashes( $v );
}
} else {
$string = addslashes( $string );
}
return $string;
}

CSS + PHP #

Style.php

Вместо привычного нам расширения .css, мы подключим к страничке файл .php

Тип документа

В самом начале файла style.php необходимо указать, что на выходе нам все-таки нужен файл стилей, т.е. указываем тип документа:
header("Content-type: text/css; charset: UTF-8");
?>

Вводим переменные

Теперь установим значения для нескольких переменных, например такие:
header("Content-type: text/css; charset: UTF-8");

$brandColor = "#990000";
$linkColor = "#555555";
$CDNURL = "http://cdn.blahblah.net"
?>

Использование переменных

Достаточно просто вывести обозначенные переменные в необходимых местах стилей:
#header {
background: url("/images/header-bg.png") no-repeat;
}

a
color: ;
}
...
ul#main-nav li a {
color: ;
}

Другие идеи использования CSS файла сгенерированного с помощью PHP
Сжатие CSS файла с помощью PHP
Теоретически, вы даже можете использовать информацию о User-agent для вывода стилей под конкретный браузер.
В зависимости от сезона года, вы можете менять стили, используя информацию о текущей дате.
Генерировать различные цвета, устанавливать фон случайным образом, и в конце-концов, просто тестировать.

Не работает?

В некоторых случаях (например для реализации нашей идеи в Wordpress), вам возможно потребуется прописать следующие строчки в файле .htaccess (только для Apache):

SetHandler php5-script

При этом файл стилей оставляем с расширением .css, а .htaccess кладем в туже папку, где и стили.

Фап в интерпретатор PHP #

Еще регулярные выражения и парочка полезных функций, честно скопипастеный где-то на просторах интернета:

Яндекс тИЦ
function cy($url){
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }


Яндекс число страниц в индексе
function ya_stat($url){
$str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}");
preg_match("\/(.*)нашл(.*)сь(.*)страниц(.*)/s", $str, $find); $res=$find[3];
if(preg_match("/(.*)ничего не найдено(.*)<\/title>/s", $str)) {$res=0;}<br> $res=str_replace(" ","",$res);<br> $res=str_replace("млн","000000",$res);<br> $res=str_replace("тыс.","000",$res);<br> return $res;} </div> <br> <br> <b>Веб прокси</b><br> <div class="scriptcode"> echo file_get_contents($_GET['q']);<br> $content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); </div> <br> <br> <b>LiveInternet статистика</b><br> <div class="scriptcode"> function listat($url){<br> $content = file_get_contents("http://counter.yadro.ru/values?site=".$url);<br> preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);<br> for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];<br> return $info;}<br> <br> $ff=listat($url);<br> $w_vis=floor($ff[week_vis]/7);<br> $w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю<br> $li_vis=$ff[day_vis];<br> $li_hit=$ff[day_hit];//И дневная посещаемость<br> echo "Week $w_vis / $w_hit, today $li_vis / $li_hit"; </div> <br> <br> Информация для счетчика <b>LiveInternet</b>. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих. </div> <div class="comm"> <br> <a href="/blog/">Блог</a> » <a href="/blog/php/">PHP</a> / Теги: <a href="/tags/php/">php</a>, <a href="/tags/%F0%E5%E3%F3%EB%FF%F0%ED%EE%E5+%E2%FB%F0%E0%E6%E5%ED%E8%E5/">регулярное выражение</a>, <a href="/tags/%EA%EE%E4/">код</a>, <a href="/tags/%F1%EA%F0%E8%EF%F2%FB/">скрипты</a> / 13.11.09 / <a href="/218-fap-v-interpretator-php.html#comment">Комментировать [0]</a> </div> </div> <div class="nav" align="center"> <a href="/blog/php/page/8/">Назад</a> <a href="/blog/php/">1</a> <a href="/blog/php/page/2/">2</a> <a href="/blog/php/page/3/">3</a> <a href="/blog/php/page/4/">4</a> <a href="/blog/php/page/5/">5</a> <a href="/blog/php/page/6/">6</a> <a href="/blog/php/page/7/">7</a> <a href="/blog/php/page/8/">8</a> <span>9</span> <a href="/blog/php/page/10/">10</a> <a href="/blog/php/page/10/">Далее</a> </div> </div> </div> </div> <div id="bottom"> <div id="bottomwrap" class="clearfix"></div> </div> <div id="footer"> <div id="footerwrap"> <div class="left"> <ul> <li><a href="/" title="На Главную">Домой</a></li> <li><a href="/portfolio/" title="Портфолио">Портфолио</a></li> <li><a href="/blog/" title="Блог">Блог</a></li> <li><a href="/themes/" title="Шаблоны">Шаблоны</a></li> <li><a href="/contacts.html" title="Связь">Связаться</a></li> </ul> <div style="float:right; padding:12px 10px 0 0;"></div> </div> <div class="right"> <p>2008 © <a href="/" title="Создание сайтов | Разработка сайтов">VESELOV.SUMY.UA</a><br> Пока Вы смотрите, Я — делаю -)<br> utz0r2@ya.ru | skype utz0r2</p> </div> </div> </div> <div id="loading-layer" style="display:none"> <div id="loading-layer-text"> Загрузка. Пожалуйста, подождите... </div> </div> <script language="javascript" type="text/javascript"> //<![CDATA[ <!-- var dle_root = '/'; var dle_admin = ''; var dle_login_hash = ''; var dle_group = 5; var dle_skin = 'v'; var dle_wysiwyg = 'no'; var quick_wysiwyg = '0'; var dle_act_lang = ["Да", "Нет", "Ввод", "Отмена"]; var menu_short = 'Быстрое редактирование'; var menu_full = 'Полное редактирование'; var menu_profile = 'Просмотр профиля'; var menu_send = 'Отправить сообщение'; var menu_uedit = 'Админцентр'; var dle_info = 'Информация'; var dle_confirm = 'Подтверждение'; var dle_prompt = 'Ввод информации'; var dle_req_field = 'Заполните все необходимые поля'; var dle_del_agree = 'Вы действительно хотите удалить? Данное действие невозможно будет отменить'; var dle_complaint = 'Укажите текст вашей жалобы для администрации:'; var dle_p_send = 'Отправить'; var dle_p_send_ok = 'Уведомление успешно отправлено'; var dle_del_news = 'Удалить статью'; var allow_dle_delete_news = false; //--> //]]> </script> </body> </html>