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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Call to a member function read() on a non-object in ...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
alexandr
Отправлено: 09 Июля, 2009 - 19:07:02
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Здравствуйте, я начинающий, поэтому прошу без оскорблений
К делу
<?php
$current_dir = "/home/";
$dir = opendir($current_dir);
$file = readdir($dir);
while ($file = $dir->read())
{
echo "<a href=\"filedetails.php?file=".$file."\">".$file."</a><br>";
}
?>

вот такой код. Возникает ошибка
Fatal error: Call to a member function read() on a non-object in Z:\home\project2\www\index.php on line 20

Есть подозрения что необъявлен класс и объекты класса.
Пример взят из книги "Разработка вэб приложений на php и mysql" Лаура Томсон и Люк Веллинг. стр.310

Подскажите как обойти сие ..?

(Отредактировано автором: 09 Июля, 2009 - 19:16:48)



-----
Есть более спокойные методы заработать на жизнь, чем forex.
 
 Top
Ch_chov
Отправлено: 09 Июля, 2009 - 19:13:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




$dir->read()
В книжке так и написано?
 
 Top
alexandr
Отправлено: 09 Июля, 2009 - 19:18:21
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Да.
Саоме главное уже покавырял много книг, и их примеры почему-то всегда с ошибками
Толи лыжи не едут....
Никак не могу найти нормальную книгу, чтоб описанный код работал нормально. Тогда можно было бы пройтись по каждой строчке и разобраться. Правда что нормальных книг единицы. Хотя возможно это связано и с версией интерпретатора php (правда я в этом сомневаюсь)

(Отредактировано автором: 09 Июля, 2009 - 19:22:29)



-----
Есть более спокойные методы заработать на жизнь, чем forex.
 
 Top
maxtet
Отправлено: 09 Июля, 2009 - 19:22:18
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Февр. 2009  
Откуда: г.Херсон


Помог: 0 раз(а)




Смотрите, у вас есть такая строка:
CODE (text):
скопировать код в буфер обмена
  1. $dir = opendir($current_dir);

а дальше вы обращаетесь с помощью функции к методу класса
CODE (text):
скопировать код в буфер обмена
  1. while ($file = $dir->read())

На это вам и указывает интерпретатор, выводя ошибку.
 
 Top
alexandr
Отправлено: 09 Июля, 2009 - 19:24:08
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Да, я это понимаю, но как обойтись без классов в данном примере? и возможно ли это вообще?


-----
Есть более спокойные методы заработать на жизнь, чем forex.
 
 Top
maxtet
Отправлено: 09 Июля, 2009 - 19:28:37
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Февр. 2009  
Откуда: г.Херсон


Помог: 0 раз(а)




Что бы ответить на этот вопрос нужно узнать хотя бы что это за метод такой read() и где строка, отвечающая за объявление класса в котором он находится.

(Отредактировано автором: 09 Июля, 2009 - 19:30:48)

 
 Top
Ch_chov
Отправлено: 09 Июля, 2009 - 19:30:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dir = opendir('home/');
  3. while ($file = readdir($dir))
  4.   echo '<a href="filedetails.php?file='.$file.'">'.$file.'</a><br/>';
  5. closedir($dir);
  6. ?>
  7.  

Классов там и не было, простно книга, наверно отсканированная у вас. И некоторые символы неправильно распознаны.

(Отредактировано автором: 09 Июля, 2009 - 19:34:14)

 
 Top
apekoff
Отправлено: 09 Июля, 2009 - 19:36:45
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)

[+]


а мне не подскажете ? я тут в соседнем топике !! ООочень надо
 
 Top
alexandr
Отправлено: 09 Июля, 2009 - 19:41:08
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Вы правы, книга похоже отсканена, но галазам своим я еще верю.
и функция read() мне право не знакома, в отличие от readdir() . Действительно, код Ваш верный и простой. Спс Закатив глазки
Вот из-за таких книг чувствую на обучение уйдет не мало времени. зла не хватает ... Огорчение
Прикреплено изображение (Нажмите для увеличения)
скрин.JPG


-----
Есть более спокойные методы заработать на жизнь, чем forex.
 
 Top
JustUserR
Отправлено: 09 Июля, 2009 - 20:02:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Цитата:
И функция read() мне право не знакома
А в ашей книге на несколькх страницах ранее или позднее не приводится класс для работы с файлами и комментарий о том что надо подключить этот класс?
И еще судя по картике это скан книги с полураспонаванием (Коих в инете валяется очень много) вероятно там при сканировании вообще часть текста потерялася
ВЕРДИКТ - ПОКУПАйТЕ ЛИЦЕНЗИОННЫЕ КНИГИ!!!

(Отредактировано автором: 09 Июля, 2009 - 20:05:04)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Champion Супермодератор
Отправлено: 09 Июля, 2009 - 20:07:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Как гласит мануал, есть в php класс dir:
CODE (text):
скопировать код в буфер обмена
  1. class dir {
  2. dir ( string $каталог )
  3. string path
  4. resource handle
  5. string read ( void )
  6. void rewind ( void )
  7. void close ( void )
  8. }
Может быть, об этом в книге ранее гд-то упоминалось?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $d = dir("/etc");
  3. echo "Дескриптор: ".$d->handle."<br>\n";
  4. echo "Путь: ".$d->path."<br>\n";
  5. while (false !== ($entry = $d->read())) {
  6.     echo $entry."<br>\n";
  7. }
  8. $d->close();
  9. ?> <?PHP
  10. $d = dir("/etc");
  11. echo "Дескриптор: ".$d->handle."<br>\n";
  12. echo "Путь: ".$d->path."<br>\n";
  13. while (false !== ($entry = $d->read())) {
  14.     echo $entry."<br>\n";
  15. }
  16. $d->close();
  17. ?>


А хороший учебник тебе вот: http://forum.php.su/forums.php?forum=62
 
 Top
alexandr
Отправлено: 09 Июля, 2009 - 20:21:27
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




не упоминалось. ну да ладно
спс за учебник, буду курить Шпаги
смайл не в тему, но красивыфый .ука


-----
Есть более спокойные методы заработать на жизнь, чем forex.
 
 Top
Ch_chov
Отправлено: 09 Июля, 2009 - 20:22:16
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Через dir должно было быть примерно так:
PHP:
скопировать код в буфер обмена
  1. $dir = dir('home');
  2. while($file = $dir->read())
  3.    echo '<a href="filedetails.php?file='.$file.'">'.$file.'</a><br/>';
  4. $dir->close();

(Отредактировано автором: 09 Июля, 2009 - 20:24:35)

 
 Top
JustUserR
Отправлено: 10 Июля, 2009 - 01:44:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Champion пишет:
Как гласит мануал, есть в php класс dir:
Да уж оказывается столько встроенных классов в PHP хотя лично по мне они не особо и нужны ведь есть необходимые функции
alexandrВам могу посоетовать сайт http://progbook[dot]ru/ там очень много различных учебников и большинство в хорошем качесте
Ch_chov пишет:
$dir = dir('home');
Наверное имелось в виду /home

Допишу тут чтобы не плодить сообщений - книга PHP за 24 часа хорошая но насколько я знаю там про PHP4 а для PHP5 я такой не видел
А так бы я посоветовал вот эту книгу http://progbook[dot]ru/php/197-kuzne[dot][dot][dot]_web_saitov[dot]html

(Отредактировано автором: 10 Июля, 2009 - 13:08:17)



-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Nestor
Отправлено: 10 Июля, 2009 - 08:07:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




'Php за 24 часа', очень хорошая книга, автор - мэтт зандстра


-----
Aurus CMS
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB