вопрос по РНР

Форум для программистов

Сообщение Dark Hobbit » Чт июн 21, 2007 5:26 pm

на сайте находятся несколько папок с одинаковой структурой
dir1
-page1
-page2
-page3
dir2
-page1
-page2
-page3

при нажатии на ссылку передаются соответствующие ?dir=dirX и ?page=pageX , и нужная страница инклюдится
на данный момнет всё успешно работает в пределах одной директории, ?dir отсутствует

как сделать так, чтобы при однократном получении ?dir все последующие операции выполнялись применительно к заданной директории?
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение SiMM » Пт июн 22, 2007 4:14 am

Делать этого не надо, ибо ничего хорошего в том, что двум одинаковым URI соответствует разный контент - нет - ни ссылкой с другим поделиться, ни поисковикам нормально проиндексировать.
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение ita » Пт июн 22, 2007 6:33 am

Dark Hobbit, директорию можно в сессию писать, но SiMM дело говорит.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Dark Hobbit » Пт июн 22, 2007 6:35 am

хм, не то. хотелось бы получать ссылки типа http://******/?dir=dirX&page=pageX

имея какие-нибудь стандарные для страниц в папках процедуры, применять их, учитывая ?dir. т.е. не расписывать X раз одно и то же, меняя только папку.
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение Magister » Пт июн 22, 2007 7:07 am

<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->при нажатии на ссылку передаются соответствующие ?dir=dirX и ?page=pageX
...
всё успешно работает в пределах одной директории, ?dir отсутствует<!--QuoteEnd--></div><!--QuoteEEnd-->
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->хотелось бы получать ссылки типа http://******/?dir=dirX&page=pageX<!--QuoteEnd--></div><!--QuoteEEnd-->
таки непонятно, чего надо, в чем проблема
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Сообщение Dark Hobbit » Сб июн 23, 2007 1:17 pm

блин, что-то я натупил.. сейчас во всём разобрался
сорри
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение SiMM » Вс июн 24, 2007 5:13 pm

Правильнопоставленный вопрос содержит 90% ответа :)
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение Dark Hobbit » Вс фев 03, 2008 2:04 pm

Код: выделить все
$chtenie=fopen ($logfile, 'r');
$logcontent=fread($chtenie, filesize($logfile));
$visitcounter=fread($chtenie, 1);
fclose ($chtenie);

в такой ситуации почему-то $visitcounter оказывается пустым, хотя первый символ в файле - единица. пробовал и с fgetc, и с fgets - везде результат один.
почему это происходит?
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение Magister » Пн фев 04, 2008 8:36 am

Dark Hobbit,
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->$logcontent=fread($chtenie, filesize($logfile));<!--QuoteEnd--></div><!--QuoteEEnd-->Похоже в этой строчке указатель при чтении сдвигается на конец файла - т.к. файл читается целиком "filesize($logfile)". И для "fread($chtenie, 1);" уже ничё не остается.
так работает:
Код: выделить все
$chtenie=fopen ($logfile, 'r');
$logcontent=fread($chtenie, filesize($logfile));
fclose ($chtenie);
$chtenie=fopen ($logfile, 'r');
$visitcounter=fread($chtenie, 1);
fclose ($chtenie);
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Сообщение ita » Пн фев 04, 2008 12:29 pm

как вариант:
Код: выделить все
$logcontent  = join("\n",file($logfile));
$visitcounter =  $logcontent[0];
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Dark Hobbit » Пн фев 04, 2008 3:10 pm

Magister,
точно

Код: выделить все
$chtenie=fopen ($logfile, 'r');
$logcontent=fread($chtenie, filesize($logfile));
fseek  ($chtenie, 0);
$visitcounter=fread($chtenie, 1);
fclose ($chtenie);

вот так сделал

ita, я так понимаю, построчно считывает?
в файле не одна строка, их количество увеличивается...
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение SiMM » Пн фев 04, 2008 9:02 pm

Если чтение файла будет выполнено вначале одним, а потом другим скриптом до того, как первый произведёт запись - один "клик" будет потерян.
<a href="http://php.net/flock" target="_blank">http://php.net/flock</a>
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение Dark Hobbit » Вт фев 05, 2008 7:15 am

SiMM,
ценное замечание, спасибо...
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

Сообщение ita » Вт фев 05, 2008 7:41 am

Dark Hobbit, не, file() читает весь файл в массив, строка из файла - элемент массива.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Dark Hobbit » Вт фев 05, 2008 7:59 am

ita,
$visitcounter = $logcontent[0];
-берёт нулевой элемент массива - значит, первую строку файла брать будет
Изображение
Dark Hobbit
Полковник
 
Сообщений: 1843
Зарегистрирован: Вс ноя 06, 2005 8:35 pm
Пункты репутации: 0

След.

Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron