Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разделить файл на части 
V
    Опции темы
mortikoj
Дата 8.4.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2007

Репутация: нет
Всего: нет



Помогите пожалуйста осуществить проход по массиву и разбить тестовой файл на несколько частей. Местами разбиения должны стать пробелы между словами. Я только начал прогррамировать и ниже представленный код моя попытка реализации задачи, укажите пожалуйста на мои ошибки.

Код

<?php
$mass=file("text.txt");
for($i=0;$i<count($mass);$i++){
$value=split(" ",$mass[$i]);
@print "$value[$i]";
}
?>

PM MAIL   Вверх
Wolf1994
Дата 8.4.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Код

foreach ($value as $k=>$v) print $v;

вместо:
Цитата

@print "$value[$i]";

PM MAIL WWW   Вверх
mortikoj
Дата 8.4.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2007

Репутация: нет
Всего: нет



Wolf1994,  большое спасибо, а можно ли это реализовать через for без foreach ?
PM MAIL   Вверх
xolod
Дата 9.4.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



Функция split разбивает по регулярному выражению, если заранее известно, что будет один пробел, надо использовать explode.
Разбиваем полученный файл, дальше хоть for, хоть через итератор.
Код

$array = explode(' ', file_get_contents('text.txt'));
for ($i = 0; $i < count($array); $i++) {
  echo($array[$i]);
}

PM MAIL   Вверх
mortikoj
Дата 9.4.2007, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2007

Репутация: нет
Всего: нет



xolod,  нет мне как раз необходимо разбить весь файл и рег. выражение известно это пробел между строк и этих пробелов несколько, а функция split должна выполняться в цикле for и выводить  через print разбитый файл.
Я щас немного продвинулся в написании, но мой код выводит только первую часть разбитого файла, а остальные части нет.
Код

<?php
$mass=file("text.txt");
for($i=0;$i<count($mass);$i++){
list($value[$i])=split(" ",$mass[$i]);
@print "$value[$i]<br>";
}
?>


содержание файла text.tx :
1 2 3 4 5

PM MAIL   Вверх
SelenIT
Дата 9.4.2007, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



mortikoj, секундочку: фактически в исходном файле одна строка? Или как?

Цитата(mortikoj @  9.4.2007,  02:03 Найти цитируемый пост)
мне как раз необходимо разбить весь файл 

Именно это делает пример xolodа smile

Цитата(mortikoj @  9.4.2007,  02:03 Найти цитируемый пост)
функция split должна выполняться в цикле for

Кому она это должна?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
mortikoj
Дата 9.4.2007, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2007

Репутация: нет
Всего: нет



SelenIT,  она не должна просто как сделать это с использованием функции split

Добавлено через 1 минуту и 57 секунд
SelenIT,  да в файле одна строка
PM MAIL   Вверх
xolod
Дата 9.4.2007, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



В моем коде замените
Код

$array = explode(' ', file_get_contents('text.txt'));

на
Код

$array = preg_split('/\s+/', file_get_contents('text.txt'));

Простой split является оболочкой к регулярным выражениям POSIX, они медленные и бедные на возможности. Очень.

Сдается мне вы плохо представляете (поставили) задачу.
PM MAIL   Вверх
mortikoj
Дата 9.4.2007, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2007

Репутация: нет
Всего: нет



xolod,  большое вам спасибо. Тему можно закрывать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.