Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как перебрать все файлы на своем сайте?

Сообщения:  [1-10]   [11-16] 

 
 автор: Eugene77   (07.01.2009 в 06:19)   письмо автору
 
   для: Владимир55   (06.01.2009 в 12:50)
 

У меня на хостинге действительно рнр включен как FastCGI.
Но о существовании проблемы при другом способе подключения я слышу впервые.

Хотя FastCGI создаёт некоторые трудности, в частности при работе с заголовками. В целом, он мне понравился. Страницы генерируются существенно быстрей. Особенно действенно ускорение для наиболее востребованных страниц.

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

В принципе, для эксплуатации хостингов эта система прав достаточно продумана и разработана в деталях. Я читал о ней кусочками, хорошо бы где-то найти её последовательное описание.

  Ответить  
 
 автор: Владимир55   (06.01.2009 в 12:50)   письмо автору
 
   для: Eugene77   (06.01.2009 в 03:57)
 

Получается так, что оператор glob() у меня работает только тогда, когда рнр включен как FastCGI. Техподдержка говорит, что иначе и быть не может.

А у меня все сайты созданы исходя из подключения рнр как модуля Apache. Переходить на подключение рнр как FastCGI стремно - вдруг еще ошибки посыпятся... Так что приходится от glob() и сипользующего glob() скрипта отказаться.

А скрипт Николай2357 работает нормально при условии прав доступа к самой папке сайта на уровне 777. Обычно у этой папки 751, но, похоже, придется ставить три семерки.

Не навлечет это проблем?

  Ответить  
 
 автор: Trianon   (06.01.2009 в 10:19)   письмо автору
 
   для: Владимир55   (05.01.2009 в 23:48)
 

>>нотайсы, надеюсь, включены?
>Что это такое? Как включается?
error_reporting(E_ALL|E_NOTICE);


>>Какой аргумент передается функции glob() ?
>Ну, вот тот, что в приведенном в самом начале коде. Большего я не знаю...
Там цеое выражение. Я спросил, чему оно равно.
Узнается оператором echo.

  Ответить  
 
 автор: Eugene77   (06.01.2009 в 03:57)   письмо автору
 
   для: Владимир55   (05.01.2009 в 21:04)
 

У меня эта функция работает и на хостинге и под домашним сервером.
У вас проблема с правами на файлы и папки.

У меня тоже такая проблема была.
Попробуйте указывать относительные пути.
Чем ближе к корню, тем больше шансов нарваться на папку с минимальными правами.
Так уж хостинги устроены...

  Ответить  
 
 автор: Владимир55   (06.01.2009 в 02:44)   письмо автору
 
   для: Николай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)))

  Ответить  
 
 автор: Николай2357   (06.01.2009 в 01:32)   письмо автору
 
   для: Владимир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);    

  Ответить  
 
 автор: Владимир55   (05.01.2009 в 23:48)   письмо автору
 
   для: 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 включить какой-нибудь модуль, какое-нибудь расширение?

  Ответить  
 
 автор: Trianon   (05.01.2009 в 23:23)   письмо автору
 
   для: Владимир55   (05.01.2009 в 23:18)
 

нотайсы, надеюсь, включены?
Какой аргумент передается функции glob() ?
Какая версия php? в четверке glob'а нет.

  Ответить  
 
 автор: Владимир55   (05.01.2009 в 23:18)   письмо автору
 
   для: Trianon   (05.01.2009 в 23:06)
 

Заменил слеши на прямые.
Ошибка та же...

Возможно, что этот скрипт плох.

Но всё же, как решить поставленню задачу?

  Ответить  
 
 автор: Trianon   (05.01.2009 в 23:06)   письмо автору
 
   для: Владимир55   (05.01.2009 в 22:18)
 

Слэши в php должны быть прямыми. Этим всё сказано.
$dir - формальный параметр функции. Присмотритесь внимательнее.
Значение туда попадает при вызове.

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования