←  Уголок вебмастера

AKADO.Форум

»

PHP Масивы

Kedr 01 сен 2006

Чего не хватает ?
Выдаёт только одну строку.
Как прочитать весь фаил?
Допишите если не затруднит.

<?php
$file = file("file.txt");
foreach ($file as $value);
list($name, $email, $url) = explode ("^", $value);

echo "$name $email $url \n\r";
?>

file.txt
1111^2222^33333
eeeee^ttttttt^hhhhhh
HHH^jjjjjjjj^LLLL Показывает только эту строку
Сообщение отредактировал Kedr: 01 сентября 2006 - 16:39
Ответить

Megard 09 сен 2006

Что-то не понятно, а что должно быть? Если содержимое файла показать, то без fopen не обойтись.
Ответить

HerSystem 09 сен 2006

Может так:
<?php
$file = file("file.txt");
foreach ($file as $value) //Нету ";"
{ //Скобка
list($name, $email, $url) = explode ("^", $value);
echo "$name $email $url \n\r";
} //Закрывающая Скобка
?>
ps: Скобки у цикла foreach надо ставить :huh:
Сообщение отредактировал HerSystem: 09 сентября 2006 - 16:57
Ответить

atran 09 сен 2006

Просмотр сообщенияMegard (Sep 9 2006, 05:00 PM) писал:

Что-то не понятно, а что должно быть? Если содержимое файла показать, то без fopen не обойтись.
ммм ...функция
file(); - заносит в массив содержание файла - одна строка - один ключ массива...
foreach (); - вывод массива в документ
explode(); -- разбивает строку на строки


А что конкретно выдает? Обрабатывает только одну строку из файла?


в общем тут проблемма так как каждый раз когда повторяется массив значение $name $email $url меняются на последние ...

Вот рабочая версия

<?php
$file = file("file.txt");
$num = -1;
while(++$num < count($file))  {
list($name[$num], $email[$num], $url[$num]) = explode ("^", $file[$num]);

echo $name[$num]; 
echo $email[$num]; 
echo $url[$num]; 
echo "<br> \n\r";

}
?>

Вместе foreache использовать while - каждая $name, $email и т.п. индивидуальный ключ массива.
Сообщение отредактировал atran: 09 сентября 2006 - 16:53
Ответить