Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: почему не видно файлы
Форумы портала PHP.SU » PHP » Программирование на PHP » почему не видно файлы

Страниц (1): [1]
 

1. bgdankrlchuk - 03 Ноября, 2009 - 18:06:13 - перейти к сообщению
почему то из каталога не видно файлов загружених на сервер...открывает opendir и вместо файлов ((( . )))
2. DeepVarvar - 03 Ноября, 2009 - 18:20:31 - перейти к сообщению
проверьте путь до каталога и путь до скрипта который этот каталог открывает
3. bgdankrlchuk - 03 Ноября, 2009 - 18:27:30 - перейти к сообщению
А как проверить? is_file?-yes is_dir-yes
И еще пишет такое
CODE (text):
скопировать код в буфер обмена
  1.  readdir(): 5 is not a valid Directory resource in /

может это через то что папок слишком много

images/
0/
0/
1/
2/
3/
2/
4/
И ваще сколько стоит делать уровней папок для социальной сети и можно ли потом дописывать в начало новые уровни
4. Мелкий - 03 Ноября, 2009 - 19:03:05 - перейти к сообщению
А вы правильно используете readdir? В цикле?

bgdankrlchuk пишет:
is_file?-yes is_dir-yes

Не может такого быть. Либо файл, либо директория даже для ссылок.
5. bgdankrlchuk - 03 Ноября, 2009 - 19:07:19 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $id="12324";
  3. $roz_id=preg_split('//', $id, -1, PREG_SPLIT_NO_EMPTY);
  4. $chislo=8-count($roz_id);
  5. if($chislo>0){
  6. for($i=0;$i<$chislo-1;$i++){
  7. array_unshift($roz_id,"0");
  8. }
  9. }
  10. for($i=0;$i<8;$i++){
  11. $cop=$cop.$dob;
  12. $dob=$roz_id[$i]."/";
  13. if(!file_exists("/home/worldfor/public_html/images/".$cop)){
  14. umask(0);
  15. $dirrectory= mkdir("/home/worldfor/public_html/images/".$cop,0777);
  16. }
  17. }
  18. $dirrectory="/home/worldfor/public_html/images/".$cop;
  19.  
  20. if (is_dir($dirrectory)){
  21. if($handle=opendir($dirrectory)){
  22.  while (false !== ($file = readdir($handle))) {
  23.  
  24. if( is_file($dirrectory.$filen)){


почему выводит Resource id #5 на $handle
6. Мелкий - 03 Ноября, 2009 - 19:22:58 - перейти к сообщению
bgdankrlchuk пишет:
почему выводит Resource id #5 на $handle

Наверное, потому что где-то выводите $handle

$cop=$cop.$dob;
$dob=$roz_id[$i]."/";
А не наоборот, случаем?

if( is_file($dirrectory.$filen)){
может всё таки:
if( is_file($dirrectory.$file)){
А то как-то нелогично.
7. Nestor - 03 Ноября, 2009 - 20:33:26 - перейти к сообщению
Я себе когда-то такую ф-цию набросал.
path - путь к папке
onlydirs - только папки
onlyfiles - только файлы
ext - если файлы, то только с расширением ext
PHP:
скопировать код в буфер обмена
  1. function read_directory($path,$onlydirs = false,$onlyfiles = false,$ext = null){
  2.         if (($path[strlen($path) - 1]) !== '/') {
  3.                 $path = $path.'/';
  4.         }
  5.         if (!$path) {
  6.                 return false;
  7.         }
  8.         $i = 1;
  9.         $dh = opendir($path);
  10.         if (!$dh) {
  11.                 return false;
  12.         }
  13.         while (!is_bool($ddt = readdir($dh))) {
  14.                 if (($ddt == '.' or $ddt == '..')) {
  15.                         continue;
  16.                 }
  17.                 if ($onlydirs) {
  18.                         if (is_dir($path.$ddt)) $ret[] = $ddt;
  19.                 } elseif ($onlyfiles){
  20.  
  21.                         if (is_file($path.$ddt)) {
  22.                                 if (is_string($ext)) {
  23.                                         $mns = strlen($ext) + 1;
  24.                                         if (substr($path.$ddt,-$mns) == '.'.$ext) {
  25.                                                 $ret[] = $ddt;
  26.                                         }
  27.                                 } else {
  28.                                         $ret[] = $ddt;
  29.                                 }
  30.                         }
  31.  
  32.                 } else {
  33.                         $ret[] = $ddt;
  34.                 }
  35.                 $i++;
  36.         }
  37.         closedir($dh);
  38.         return $ret;
  39. }

(Добавление)
Возвращает массив

 

Powered by ExBB FM 1.0 RC1