|
|
|
|
|
для: Владимир55
(06.01.2009 в 12:50)
| | У меня на хостинге действительно рнр включен как FastCGI.
Но о существовании проблемы при другом способе подключения я слышу впервые.
Хотя FastCGI создаёт некоторые трудности, в частности при работе с заголовками. В целом, он мне понравился. Страницы генерируются существенно быстрей. Особенно действенно ускорение для наиболее востребованных страниц.
Что касается папок, то 0777 не обязателно. Для работы скрипта может хватить и меньших прав. Сейчас навскидку никак не соображу каких именно.
В принципе, для эксплуатации хостингов эта система прав достаточно продумана и разработана в деталях. Я читал о ней кусочками, хорошо бы где-то найти её последовательное описание. | |
|
|
|
|
|
|
|
для: Eugene77
(06.01.2009 в 03:57)
| | Получается так, что оператор glob() у меня работает только тогда, когда рнр включен как FastCGI. Техподдержка говорит, что иначе и быть не может.
А у меня все сайты созданы исходя из подключения рнр как модуля Apache. Переходить на подключение рнр как FastCGI стремно - вдруг еще ошибки посыпятся... Так что приходится от glob() и сипользующего glob() скрипта отказаться.
А скрипт Николай2357 работает нормально при условии прав доступа к самой папке сайта на уровне 777. Обычно у этой папки 751, но, похоже, придется ставить три семерки.
Не навлечет это проблем? | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2009 в 23:48)
| | >>нотайсы, надеюсь, включены?
>Что это такое? Как включается?
error_reporting(E_ALL|E_NOTICE);
>>Какой аргумент передается функции glob() ?
>Ну, вот тот, что в приведенном в самом начале коде. Большего я не знаю...
Там цеое выражение. Я спросил, чему оно равно.
Узнается оператором echo. | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2009 в 21:04)
| | У меня эта функция работает и на хостинге и под домашним сервером.
У вас проблема с правами на файлы и папки.
У меня тоже такая проблема была.
Попробуйте указывать относительные пути.
Чем ближе к корню, тем больше шансов нарваться на папку с минимальными правами.
Так уж хостинги устроены... | |
|
|
|
|
|
|
|
для: Николай2357
(06.01.2009 в 01:32)
| | Мистика...
Наверное, у меня что-то с рнр5 на сервере не в порядке.
В общем, получается так:
На Денвере с рнр4 работает превосходно, а на сервере с рнр5 такая диагностика:
Warning: opendir() [function.opendir]: failed to open dir: Permission denied $dir_files = opendir($dir);
Warning: readdir(): supplied argument is not a valid Directory resource in while(false !== ($file = readdir($dir_files))) | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2009 в 23:48)
| | Ну вот Вам тоже самое, только по русски: )))
<?php
$root = $_SERVER['DOCUMENT_ROOT'];
function find_new($dir)
{
$new_dir = null;
$dir_files = opendir($dir);
while(false !== ($file = readdir($dir_files)))
{
if($file != '.' && $file != '..')
$new_dir[] = $dir."/".$file;
}
if($new_dir)
foreach($new_dir as $check )
{
if(is_file($check))
echo $check."<br>";
elseif(is_dir($check))
find_new($check);
}
}
find_new($root);
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 23:23)
| | >нотайсы, надеюсь, включены?
Что это такое? Как включается?
>Какой аргумент передается функции glob() ?
Ну, вот тот, что в приведенном в самом начале коде. Большего я не знаю...
>Какая версия php? в четверке glob'а нет.
Вот эта мануальная функция
foreach (glob("*.*") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
| не исполняется у меня, но исполняется на Денвере с версией рнр 4.4.4.
У меня PHP Version 5.2.8.
По мануалу glob (PHP 4 >= 4.3.0, PHP 5)
Техподдержка прислала вот такой более чем странный ответ:
Не работает именно glob, как видно из мануального примера, добавил в самое начало:
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
это внешняя shell-функция, а не php-шная, и есть ли вообще возможность её использовать в скриптах на vds, сразу, честно, не подскажу, с таким ещё не приходилось сталкиваться. В шелле под csh функция работает.
Что бы это всё значило?
Может быть, для исполнения glob нужно в рнр5 включить какой-нибудь модуль, какое-нибудь расширение? | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2009 в 23:18)
| | нотайсы, надеюсь, включены?
Какой аргумент передается функции glob() ?
Какая версия php? в четверке glob'а нет. | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 23:06)
| | Заменил слеши на прямые.
Ошибка та же...
Возможно, что этот скрипт плох.
Но всё же, как решить поставленню задачу? | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2009 в 22:18)
| | Слэши в php должны быть прямыми. Этим всё сказано.
$dir - формальный параметр функции. Присмотритесь внимательнее.
Значение туда попадает при вызове. | |
|
|
|
|