не надо искать во всех имеющихся. Ищите только в строго заданных. Список допустимых папок запишите в массив, и в цикле обходите, проверяя, имеется ли в папке требуемый файл.
Благодарю за помощь! Я примерно так и предполагал. Но, поскольку недостаточно знаний и опыта, мне не написать такой сложный вариант. Создал в своем INDEX.PHP проверку посредством длинной череды строк с операторами IF и ELSE. Теперь движок работает нормально, загружаются любые страницы как из корневого каталога, так из папок, заданных переменными, но понимаю, что опытные люди так не делают.
Здравствуйте!
Мой сайт размещен на сервере, который находится за рубежом, в часовом поясе Гринвичского меридиана, поэтому на сайте посредством функции date выводится время по Гринвичу. Мне хотелось бы, чтобы на сайте выводилось Московское время, то есть GMT+4 (не GMT+3, потому что у нас время переведено на час назад).
Возможно ли каким-то образом для этого изменить параметры функции date? Не хотелось бы использовать Javascript.
Здравствуйте!
Для подключения страниц из папки у меня используется фрагмент из скрипта:
-------------------------------- ------------------------------
// Имеющиеся папки для страниц
$dir="pages/";
$dir2="pages2/";
$dir3="pages3/";
$dir3="pages3/";
$dir4="pages4/";
// Если файл существует
if (file_exists("$page"))
// Включить в страницу файл
include ("$page");
else
// Если файл существует
if (file_exists("$dir$page"))
// Включить в страницу файл
include ("$dir$page");
-------------------------------- ------------------------------
В этом фрагменте подключаются страницы только из корневой папки и папки $dir="pages"
Приведите, пожалуйста, пример для подключения этой страницы, если ее файл, например, $page=main.php находится в любой из других имеющихся папок, посредством метода проверки существования этого файла во всех имеющихся папках, не используя при этом длинный ряд строк, содержащих if и else
Очень вам благодарен за скрипт. Кроме того, что он выполняет эту сложную задачу, мне еще будет интересно и полезно разобраться в его структуре и понять как выполняется программа.
С наилучшими пожеланиями, Владимир
Здравствуйте!
Понял, что в моем варианте существует риск разрушения файла, поскольку возможен совместный доступ к нему, и блокировка в этом случае не спасает.
Поэтому попробовал ваш скрипт на странице вывода сообщений:
Работает без ошибок, но вывод данных несколько некорректный: по датам выводятся не соответствующие им сообщения. Изменил в строках скрипта коды <BR> на коды <P> и вывод данных стал правильным. Работает замечательно. Спасибо.
Хотелось бы еще попробовать два ваших варианта:
1. Считывать символы из текстового файла по одному начиная с конца, присоединять к началу строки и проверять готовую строку, начинается ли она на тег <P>. Если начинается, то выводить эту строку и обнулять её. И так весь файл.
2. Вывести не весь файл, а несколько последних сообщений.
Но, к сожалению, у меня наверно не получиться самому правильно написать такие скрипты - недостаточно знаний и опыта. Если возможно, помогите, пожалуйста.
Здравствуйте!
Благодарю за полезный и интересный ответ на мой вопрос, а также за комментарии к нему.
Поскольку нельзя допускать, чтобы файл сообщений был чрезмерно велик, буду его периодически очищать. Можно на всякий случай перед этим сохранять копию файла.
Дополнил скрипт, в котором производится запись данных. Порядок выполнения скрипта при отправке данных из формы стал таким:
1. Открывается текстовый файл сообщений (со старыми данными) с параметром "r" и все данные считываются в массив - буфер. Файл закрывается.
2. Открывается файл сообщений с параметром "w" для удаления всех данных и записывается новое сообщение. Файл закрывается.
3. Снова открывается файл сообщений, но уже с параметром "a+" для добавления данных. Из массива-буфера производится запись прежних данных. Файл закрывается.
Работает нормально, не нужна сортировка строк.
Конечно, может быть не рационально, что три раза открывается и закрывается файл. Но не могу пока сообразить, как можно это оптимизировать. Может что-нибудь посоветуете?
Здравствуйте!
Посредством формы все сообщения посетителей сайта записываются в один текстовый файл. Перед каждым сообщением записывается код <P>, коды <BR> записываются для переноса строк. Сообщите, пожалуйста, возможно ли посредством какой-либо функции РНР выводить на экран данные из файла в обратном порядке, те есть, чтобы в начале выводилось сообщение, которое находится в конце файла (с последней датой), а далее по порядку с конца выводились последующие сообщения. Это фрагмент текстового файла, который содержит четыре сообщения:
<P>Алексей<BR>alex@mail.ru<BR>12-10-13, 20:45:34<BR>На вашем сайте не работает ссылка на страницу Новости<P>Андрей<BR>andrey@hotmail.com<BR>08-11-13, 18:39:15<BR>На странице находится бесполезная ссылка на сайт http://sportnews.com, который уже не существует <P>Денис<BR>denis@yandex.ru<BR>17-11-13, 19:24:39<BR>Не скачивается архив java скрипты<P>Николай<BR>nick@rambler.ru<BR>25-11-13, 22:51:11<BR>Сообщите о возможности обмена ссылками
Благодарю, не ожидал, что так быстро получу ответ на свой вопрос. Два вечера просматривал Руководства и Учебники и ничего не нашел. А сегодня неожиданно проблема разрешилась. Всего вам наилучшего.
Имеется ли в в РНР функция, посредством которой после выполнения скрипта она бы обновляла (перезагружала) страницу, или обеспечивала бы автоматический переход по ссылке на другую страницу? Думаю, что РНР этого делать не может, поскольку в Руководствах об этом ничего нет. Или все-таки возможно? Если возможно, то каким образом?