rereg

Рейтинг
59
Регистрация
20.02.2015

ТС, советую почитать Жадные и ленивые квантификаторы.


// захват любого блока <div> в строке даже пустого
x = x.match(/<div[^>]*>[^<]*<\/div>/g)

{php} блок он есть http://www.smarty.net/docsv2/ru/language.function.php.tpl просто у вас он скорее всего ругается на переменные smarty внутри этого блока.

Такая там встроенная штука есть http://www.smarty.net/docsv2/ru/language.modifier.regex.replace.tpl


{foreach from=$paginator->getPageList() item=page}
<a href="{$page.href|regex_replace:"#]\[\d+]#":"][]"}" {if $page.act}class="act"{/if}>{if $page.class=='left'}&laquo;{$page.n}{elseif $page.class=='right'}{$page.n}&raquo;{else}{$page.n}{/if}</a>
{/foreach}
v_ovan:
на тег {php} ругается матом

А не должен http://www.smarty.net/best_practices он есть в документации. Платный продукт а использует либу по GPL лицензии(хоть не запрещено).. как то не комильфо

Замените на это, другой pattern


$page.href = preg_replace("#]\[\d+]#", "][]", $page.href);

v_ovan, щас глянул, у него шаблонизатор smarty. А у него нет встроенной функции preg_replace и поэтому нужен блок {php}..{/php}


{foreach from=$paginator->getPageList() item=page}
{php}$page_href=preg_replace('/\[\d+?\]/i', '[]', $page.href);{/php}
<a href="{$page_href}" {if $page.act}class="act"{/if}>{if $page.class=='left'}&laquo;{$page.n}{elseif $page.class=='right'}{$page.n}&raquo;{else}{$page.n}{/if}</a>
{/foreach}

LEOnidUKG, smarty вроде, там если память не изменяет надо php код объявлять в блок {php}code..{/php}

А регулярки все рабочие

Вторые четные скобки очистит

preg_replace("#]\[\d+]#", "][]", $string);

Eteg от хэша HTML документа - очень интересно.. в чем логика такого Etega?

У вас получается, что скрипт прошел весь цикл(запросы к БД, сборка шаблона) и только на финальной стадии перед отдачей клиенту заголовков и контента скрипт сверяет if-none-match хеша уже готового к отдаче контента.

Тоесть скрипт нигде не прервался к примеру после запроса к БД где у вас есть временная метка и вы можите сравнить по if-modified-since отдать 304 ответ и прервать скрипт. Для чего и нужен last-modified.

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

Ну а страницы на которых контент очень часто обновляется, тогда лече вообще не отдавать никаких заголовков.

Как предлагали выше хранить БД в виде ПХП файла.


// создает файл db.php где объявлены $ID, $NAME, $BIRTH, $VES, $ADRESS с заполненными данными
// в случаи обновления base.txt обновляется и db.php с новыми данными
if (file_exists(__DIR__."/db.php")) {
include(__DIR__."/db.php");
if ($careded_this_database < filemtime(__DIR__."/base.txt"))
create_db();
} else {
create_db();
}
function create_db() {
global $ID, $NAME, $BIRTH, $VES, $ADRESS; // глобальной области видимости
$fp = fopen(__DIR__."/base.txt", "r");
while (!feof($fp)) {
$line = fgets($fp);
list($id, $name, $birth, $ves, $adress) = explode("\t", trim($line));
$ID[$id] = $id;
$NAME[$id] = $name;
$BIRTH[$id] = $birth;
$VES[$id] = $ves;
$ADRESS[$id] = $adress;
}
file_put_contents(__DIR__."/db.php", "<?php\n".
"\$careded_this_database=".filemtime(__DIR__."/base.txt").
";\$ID=".var_export($ID, true).
";\$NAME=".var_export($NAME, true).
";\$BIRTH=".var_export($BIRTH, true).
";\$VES=".var_export($VES, true).
";\$ADRESS=".var_export($ADRESS, true).
";\n?>");
include(__DIR__."/db.php");
}
var_dump($ID, $NAME, $BIRTH, $VES, $ADRESS);

memcached

Для чтения из файла строк луче использован fgets, fscanf

Быстрый обмен, Спасибо ТС.

Всего: 485