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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция сохранения в массив содержимого файла 
:(
    Опции темы
Slauta
Дата 21.11.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



Проблема такая-надо файл из директории записать в массив,
 а патом  вырезать из массива определённый кусок текста, начало и конец вырезаемого текста мы знаем.... Вот в принципе и все.Помогите с кодом.
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
Ипатьев
Дата 21.11.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вы уверены, что правильно понимаете значение слова "массив"?
Может, лучше на примере описать задачу?
PM MAIL   Вверх
Slauta
Дата 22.11.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



Задача такая! Есть файл. Мне нужно вывести на экран определённый вырезанный текст из этого файла, начала и конец вырезаемого текста мы знаем... И как решить? У меня идея была к примеру как в перле, всё из файла записываем в массив, а патом фарматируем его до определённого момента, как нам и надо! Вот...
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
NLspieler
Дата 22.11.2009, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А может лучше решить задачу так:

1. Извлекаем содержимое файла при помощи функции file_get_contents
2. При помощи регулярки достаем нужный текст.
PM MAIL   Вверх
Slauta
Дата 22.11.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



А в примере можно?
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
K0T9I
Дата 22.11.2009, 18:46 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

$text = file_get_contents('file.txt');
$text = preg_match('/регулярное выражение/',$text);


а что бы написать регулярное выражение нужны подробности
PM MAIL   Вверх
NLspieler
Дата 22.11.2009, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



text.txt лежит в той же папке, что и скрипт
Код

eoirfoiejrfoiejrfoijerf
startPRIVETend
erofijeorijfeoir
startPOKAend


Код

<?php

$start = 'start' ;  //Начальный текст для поиска
$end = 'end' ;      //Конечный текст для поиска
$pattern = "/$start.+$end/" ; //Формируем ругулярку

$text = file_get_contents('text.txt'); //Помещаем содержимое файла в переменную
if ( preg_match_all($pattern , $text , $result) )
{
    $result = $result[0] ;  //Массив $result будет содержать найденные строчки. 
    print_r ($result) ;       //"Распечатать" содержимое массива
}
else
{
    echo 'Правильный текст не найден' ;
}
?>


Это сообщение отредактировал(а) NLspieler - 22.11.2009, 22:03
PM MAIL   Вверх
K0T9I
Дата 23.11.2009, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



добавлю, если у вас русский текст с кодировкой utf8, то надо изменить регулярное выражение на:
$pattern = "/$start.+$end/u" ; //Формируем ругулярку
PM MAIL   Вверх
Slauta
Дата 23.11.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



Пасиба большое! Буду пробовать...
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
Slauta
Дата 23.11.2009, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



Отлично. Все работает.
Вот ещё усложнение...
Код

eoirfoiejrfoiejrfoijerf
startPRIVETend
ksdfjlk"dsklgj/dcldckldkcldkcldkcldck"
startPOKAend

Как еще и заменить к примеру "dsklgj/ ... " на "1"???
Я прочитал на php.su про preg_replace, может его как нить с preg_match_all соединить?
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
NLspieler
Дата 23.11.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

$pattern = '/"dsklgj\/.+"/' ;   

/*
Слэш в начале и конце обрамляет регулярку.    .+   Значит несколько любых символов
Слэш в тексте, нужно экранировать при помощи \, так как иначе возникнет ошибка.
*/


$new_text = preg_replace($pattern, '1', $text);
echo $new_text ;

С preg_match_all соединить не получится.

Можно например, сначала провести замену, а потом результат прогнуть через preg_match_all,
но одновременно никак не получится.  
PM MAIL   Вверх
Slauta
Дата 24.11.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


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

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



Всё работает. спасибо большое.
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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