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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Не удается вывести содержимое каталога
 
 автор: fs444   (30.10.2008 в 00:35)   письмо автору
 
 

<?
$dir
=dirname(__FILE__);
if (
is_dir($dir)) {
echo 
$dir;
if (
$dh=opendir($dir)) {
  while (
$file=readdir($dh) !== false) {
  echo 
"Файл: $file";
  }
  
closedir($dh);
}
}
?>

Он вместо названий файлов и папок выводит
Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1Файл: 1
Никак не пойму, в чем проблема. Вроде все правильно написано.

  Ответить  
 
 автор: BinLaden   (30.10.2008 в 00:52)   письмо автору
 
   для: fs444   (30.10.2008 в 00:35)
 

У оператора "!==" приоритет выше, чем у "=". Значит сначала выполнится выражение "readdir($dh) !== false", а затем переменной $file присвоится значение true (1).

Поэтому возьмите $file = readdir($dh) в скобки.

  Ответить  
 
 автор: fs444   (30.10.2008 в 23:22)   письмо автору
 
   для: BinLaden   (30.10.2008 в 00:52)
 

А почему код

If ($handle=opendir("C:\WebServers\home\localhost\www")) {
 While (($file=readdir($handle)) !== false) {
   print "Файл: $file\n\r";
 }
}

печатает названия файлов и папок в одну строчку, хотя "\n\r" должна каждый раз должна переводить печать на новую строку?

  Ответить  
 
 автор: egoss   (30.10.2008 в 23:52)   письмо автору
 
   для: fs444   (30.10.2008 в 23:22)
 

Если Вы просматриваете результат через броузер, то для перевода строки используйте тег <br>
print "Файл: $file<br>\n\r";
Или откройте страницу результата в исходном тексте

  Ответить  
 
 автор: fs444   (31.10.2008 в 20:44)   письмо автору
 
   для: egoss   (30.10.2008 в 23:52)
 

Скрипт заработал :) Вывод содержимого папки выглядит так:
Файл: .
Файл: ..
Файл: phpmyadmin
Файл: README.txt
Вопрос: что означают "." и ".."?

  Ответить  
 
 автор: edii87shadow   (31.10.2008 в 21:24)   письмо автору
 
   для: fs444   (31.10.2008 в 20:44)
 

>Скрипт заработал :) Вывод содержимого папки выглядит так:
>Файл: .
>Файл: ..
>Файл: phpmyadmin
>Файл: README.txt
>Вопрос: что означают "." и ".."?
. - означает текущий каталог.
.. - означат абсолютный путь например "/home/test.text"

  Ответить  
 
 автор: BinLaden   (01.11.2008 в 00:51)   письмо автору
 
   для: edii87shadow   (31.10.2008 в 21:24)
 

> означат абсолютный путь например ...

А?

  Ответить  
 
 автор: fs444   (01.11.2008 в 17:02)   письмо автору
 
   для: BinLaden   (01.11.2008 в 00:51)
 

Хочу, чтобы "." и ".." изначально не попадали в массив. Написал код
$path="C:\WebServers\home\localhost\www\Tools\\";
If ($handle=opendir($path)) {
while (($file=readdir($handle)) !== false) {
  if (($file != ".") or ($file != "..")) {
   $FilesNDirs[]=$file;
  }
}
}

Но "." и ".." все равно попадают в массив. Почему?

  Ответить  
Rambler's Top100
вверх

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