| |
|
|
| | У меня не работает вот такой код:
<?php
$file_basa = file ("baza.dat");
echo ("<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"");
for ($i=0; $i < count ($file_basa); $i++)
{
$name_file_new = $file_basa [$i];
$file_open_stats = fopen ("../baza/baza1/$name_file_new", "r");
$bufer = fread ($file_open_stats, filesize ($name_file_new));
fclose ($file_open_stats);
echo ("<tr><td class=\"bases\">$name_file_new</td>");
echo ("<td class=\"bases\">$bufer</td></tr>");
}
echo ("</table>");
?>
|
Смысл работы скрипта такой: есть файл baza.dat. В нём записаны имена файлов в виде: name.exe.dat. Каждое имя файла находится на отдельной строчке. Также есть папка ../baza/baza1/ . В этой папке и находятся файлы с именами: name.exe.dat. Это текстровые файлы, в которых храниться число. Данный скрипт должен читать содержимое файла baza.dat в массив и каждый элемент этого массива используется для открытия файла из папки ../baza/baza1/ . Вернее, файл открывается и считывается его содержимое, которое потом должно выводиться в браузер. То есть нужно, чтобы вводилось в таблице что-то типа пары: имя файла-значение, соответствующее этому файлу. Но этот скрипт работает неправильно. Пишет: failed to open stream: Invalid argument. Подскажите, что не так? | |
| |
|
|
| |
|
|
| |
для: Footer
(08.03.2007 в 14:52)
| | | Вообще я в коде не вижу ошибок:) возможно проблема с путями.
Напишите полностью ошибку которую выдает этот скипт | |
| |
|
|
| |
|
|
| |
для: Poison
(08.03.2007 в 15:26)
| | | Warning: fopen(../baza/baza1/A005.jpg.dat ) [function.fopen]: failed to open stream: Invalid argument in C:\www\site\baza\top_handler.php on line 7 | |
| |
|
|
| |
|
|
| |
для: Footer
(08.03.2007 в 15:41)
| | | И таких сообщений много - очевидно - по количеству файлов.
И ещё вот такого типа сообщения:
Warning: filesize() [function.filesize]: stat failed for A005.jpg.dat in C:\www\site\foto\top_handler.php on line 8 | |
| |
|
|
| |
|
|
| |
для: Footer
(08.03.2007 в 15:46)
| | | Ну да, скорее всего дело в путях :-))
Первая ошибка - файл не анйден, вторая - подобная.... | |
| |
|
|
| |
|
|
| |
для: Footer
(08.03.2007 в 15:41)
| | | Файл C:/www/site/baza/baza1/A005.jpg.dat существует? | |
| |
|
|
| |
|
|
| |
для: cheops
(09.03.2007 в 12:09)
| | | Да, всё есть. Попробовал написать так:
$name_file_new = ${file_basa[$i]};
|
вообще, пишет что синтаксическая ошибка - на [ ругается. Да, думаю дело в имени, которое передаётся в массиве....что делать? помогите! уже не знаю, как сделать, чтобы работало. | |
| |
|
|
| |
|
|
| |
для: Footer
(09.03.2007 в 17:07)
| | | Может, попробовать как-нибудь по-другому? Помогите! Плиз! | |
| |
|
|
| |
|
|
| |
для: Footer
(09.03.2007 в 17:09)
| | | Может проблема в том что " Каждая строка в полученном массиве будет завершаться символами конца строки, поэтому, если вам будет нужно избавиться от этих символов, вы будете должны использовать функцию rtrim()". | |
| |
|
|
| |
|
|
| |
для: Footer
(08.03.2007 в 14:52)
| | | Да так оно и есть
<?php
$file_basa = file ("baza.dat");
echo ("<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"");
for ($i=0; $i < count ($file_basa); $i++)
{
$name_file_new = rtrim($file_basa [$i]); // убираем знак перевода строки из имени файла
$file_open_stats = fopen ("../baza/baza1/$name_file_new", "r");
$bufer = fread ($file_open_stats, filesize ($name_file_new));
fclose ($file_open_stats);
echo ("<tr><td class=\"bases\">$name_file_new</td>");
echo ("<td class=\"bases\">$bufer</td></tr>");
}
echo ("</table>");
?>
|
Попробовал у себя запустить, без rtrim выдает ошибки
поменял $name_file_new = $file_basa [$i];
на $name_file_new = rtrim($file_basa [$i]); - все в порядке | |
| |
|
|
| |
|
|
| |
для: Dmitrij_K83
(09.03.2007 в 23:02)
| | | Да, спасибо! Сначала скрипт не хотел работать, но потом всё таки заработал! Теперь всё работает! Спасибо ещё раз! Спасибо огромное! =) | |
| |
|
|