Как исключить урл в скрипте ?(пхп-скрипт)

[Удален]
848

Этот код кеширует все страницы движка (движек вордпресс, код -содержимое индекс.пхп)

Нужно исключить кеширование страниц, которые в урл содержат к примеру "preview=true". Как это можно сделать? Пробовал добавлять вначале if(!preg_match('/(preview=true)/is',$_SERVER['REQUEST_URI'])){ , но не катит, ошибки в синтаксисе видимо, в общем не разрулил (в пхп нуб)

<?php
$start = microtime();
$filename = 'cache/'.md5($_SERVER['REQUEST_URI']).'.html';
$cached = false;
$time = 8 * 60 * 60; // Время кеша в секундах (4*60*60 = 4 часа)
$stat = 0; // Установите 1 для вывода времени загрузки страницы (по умолчанию 0)

if (file_exists($filename)) {
if ((time()-filemtime($filename))<$time) {
$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;
}
$finish = microtime();

if ($stat==1) echo $finish-$start;
?>
Станислав
На сайте с 27.12.2009
Offline
258
#1

if($_GET['preview'] !== 'true')

{
// код который выполняет кеширование
}
Мы там, где рады нас видеть.
TF-Studio
На сайте с 17.08.2010
Offline
334
#2

if strpos - более верный способ

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
gormarket
На сайте с 29.12.2010
Offline
47
#3

Регулярка рабочая, видимо не туда вставляли. Скобки не обязательны, и модификатор s тоже (используется в многострочных текстах)

Нужно чтоб при срабатывании регулярки выполнялся весь приведенный код,

а иначе (когда не нужно кеширование) только пара строк что после "// WP", чтоб содержимое отдавалось напрямую (весь остальной код - это кешрование).

После строки

<?php

вставьте

if(!preg_match('/preview=true/i',$_SERVER['REQUEST_URI'])){

и перед строкой

?>

такой код

} else {

// WP

define('WP_USE_THEMES', true);

require('./wp-blog-header.php');

//

}

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
Станислав
На сайте с 27.12.2009
Offline
258
#4

не пойму зачем юзать preg_match, искать что либо в урле, когда

preview=true

Это гет запрос, сегодня сложно гет запрос взять с ура? Или как то небезопасно?

Ну или просто проверить его наличие.

S
На сайте с 03.07.2009
Offline
41
#5

$p_url=parse_url($url);

parse_str ( $p_url['query'], $arr_str );
if (isset($arr_str['preview'])and(!empty($arr_str['preview']))) {
....
} else {
...
}
Кодинг на PHP. Разработка расширений под Joomla.
[Удален]
#6

спасибо)) все работает.. использовал вариант gormarket, а вариант

if($_GET['preview'] !== 'true')
{
// код который выполняет кеширование
}

выдавал пустую белую страницу на урлах "preview=true", наверное чего-то не хватает в моем варианте (кавычки\скобки\синтаксисы\прочее)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий