stroydomen

Рейтинг
116
Регистрация
30.09.2009
bomber:
Уважаемый ну вы наверно вкурсе что будут возникать проблемы со сканом директории где файлов более 1000 (применительно к никсам).

Нет, не в курсе, спасибо. Но думаю в этой папке не будет более 1000 файлов )

stroydomen добавил 27.08.2010 в 12:52

bomber:

if (isset($arr[$my_key+1])) echo $arr[$my_key+1]['title']; else echo $arr[0]['title'];
if (isset($arr[$my_key+2])) echo $arr[$my_key+2]['title']; else echo $arr[1]['title'];
где $my_key: id текущей статьи.

Извините, но даже так - мне не сразу понятно. Не понятно куда этот код вставлять и от куда массив с данными $arr и что такое 'title' в данном случае у вас?

Я остановился на том, что я записал данные в файл.

Теперь открываю файл

  

// ОТКРЫВАЕМ ФАЙЛ ДЛЯ ЧТЕНИЯ
$ff=fopen("text.cache", "r");
fclose($ff);
// и хочу сделать типа такого
for ($q=0; $q<=2; $q++) {
echo '<li>'.$files[$q].'</li>'; }

но я пока не понял, как из файла это дело загнать в массив. Или я не туда копаю?

stroydomen добавил 27.08.2010 в 12:57

В принципе в Вашем предложении почти разобрался. Пока не могу справиться с тем, чтобы данные из файла загнать в массив arr...

Opupenko:
А как сами статьи-то именуются в каталоге? Или есть какой-то массив?

Сейчас как раз этим занимаюсь.

Статьи в папке будут именоваться так:

1-krasnaj-glina.php

2-kafel-dla-kuhni.php

и т.д.

Сейчас сделал следующее.

Открыл директорию с файлами, просканировал, записал в массив, отсортировал массив, записал в отсортированном порядке в файл text.txt

Теперь мучаюсь как вывести

Вывод хочу сделать что-то вроде


for ($q=$s; $q<=2; $q++) {
echo '<li>'.$files[$q].'</li>'; }

здесь $s - это будет первый символ +1, в названии файла текущей страницы.

Ребят. Тема снова актуальна.

Сделал замену вместо

$file2 = ereg_replace ("-", " ", $file2);

сделал

str_replace ...

Это правильное решение?

Дело в том что здесь сказано только про то что функция ereg будет удалена,

http://php.su/php/?migration53

но str я так понимаю будет жить.

pikasso:
ТопеГ просто жесть, вы про Debug слышали ? О_о
По теме:
include (realpath(".")."/cache/".$fname.".cache'); 

А вообще скажите, неужили сложно написать так:
echo  dirname(__FILE__) . '/cache/' . $fname . '.cache';

И посмотреть какой именно путь прописываете и подправить ошибку ?🤣

Да, сложно, не получается, видимо знаний не хватает. Всем спасибо, пришлось сделать как писал ранее через if else в зависимости от вложенности присваивается разный путь.

AlikZP:
У него точки разделяют переменную и строковое выражение.

Мой вариант работает?
include ("/cache/$fname.cache");

Нет. Это було среди тех вариантов, о которых я написал, что не сделать мне и все варианты перепробовал.

Opupenko:
не используй точку, также в двойных кавычках "оборачивай" переменные фигурными скобками, попробуй
include (dirname(__FILE__) . "/cache/{$fname}.cache");
сам я пишу так:
include dirname(__FILE__) . '/cache/' . $fname . '.cache';

кстати, ты бы еще сами ошибки приводил сюда, чтоб мы не терялись в догадках об их природе =)))

Так а если пишете с точками переменную, зачем советуете без? :)

stroydomen добавил 26.08.2010 в 15:23

Opupenko:
include (dirname(__FILE__) . "/cache/{$fname}.cache");
QUOTE]

В таком варианте ошибка
[function.include]: failed to open stream: No such file or directory in 


Во втором варианте таже ошибка
Ладно, сделал через if else код видит в какой он странице и дает тот или иной путь к файлу.
AlikZP:
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/cache/'.$fname.'.cache', 'w');

Спасибо, если не сложно - теперь проблема с

include ("./cache/$fname.cache");

на страницах внутренних - ошибка.

Подскажите пож-та как этот путь правильно прописать?

stroydomen добавил 26.08.2010 в 14:45

Opupenko:
плюс проверь права на запись в папку кеша =)

права 777. ок

LEOnidUKG:
Да, можете. Исходный html пропускаете через "парсер", вырезаете нужный код и его в кэш.

Да, спасибо, поизучаю. Наверное, все таки в моем случае правильнее сделать через запись в файл и инклуд этого файла и обновление его каждый час.

Код страницы примерно таков

статичный код

динамичный код страницы = вот его то и надо либо кешировать либо в файл загнать и вытаскивать от туда

статичный код

LEOnidUKG:
$filecache=$_SERVER['DOCUMENT_ROOT'].'cache/2.cache';

замените на
$filecache=$_SERVER['DOCUMENT_ROOT'].'/cache/2.cache';

Тоже самое:

readfile($_SERVER['DOCUMENT_ROOT'].'/cache/2.cache');

Всегда пишите от корня сайта путь, проблем будет меньше.

Спасибо. Итак, совместными усидлиями получилось сохранять в кеше весь код страницы и выводить именно его если с кеширования прошло менее 60 секунд, если более - то обновлять кеш-файл и выводит его.

Скажите, пожалуйста, я правильно понимаю - я могу не весь код страницы кешировать, а только его нужную часть? верно?

dvaes:
может надо полярность знака поменять. подумайте

Согласен. Уже все варианты перепробовал. 😒

Всего: 908