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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запись в массив содержимое файла, не в ладах с regex... 
:(
    Опции темы
12usver12
Дата 15.11.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Доброго времени суток!
Производится запись в файл:
 
Код

<?php 
$handle = fopen("test.txt", "w");

$str = "TEXT=";
$str .= "some text";
$str .= "\n";

fwrite($handle, $str);

$str = "R1=";
$str .= "10";
$str .= "\n";

fwrite($handle, $str);

$str = "R2=";
$str .= "100";
$str .= "\n";


fwrite($handle, $str);

$str = "R3=";
$str .= "1000";
$str .= "\n";


fwrite($handle, $str);

fclose($handle);
?>


Теперь нужно данные из этого файла записать в массив, но только те, которые идут после =
вот содержимое файла

Код

<?php
// чтение из файла
$file = fopen($_SERVER['REMOTE_ADDR'],"r") or die("Can't open file!"); 
//$fl = fread($file,filesize($_SERVER['REMOTE_ADDR']));
// лучше всего записать в массив содержимое файла...
$file_array = file($_SERVER['REMOTE_ADDR']);
// прочитади содержимое файла, записали в переменную, и закрываем файд...
fclose($file);


if (!$file_array)
{
   echo 'Ошибка открытия файла';
}
else
{
   for($i=0; $i<count($file_array); $i++)
   {
      print ($file_array[$i].'<br />');  // вывод содержимого буфера...
   }
}
?>


Результат этого
some text=ggggg 
R1=10 
R2=100 
R3=1000

Теперь сам вопрос
как в массив записать данные, чтобы массив выглядел так:
Код

$file_array[0] = ggggg
$file_array[1] = 10
$file_array[2] = 100
$file_array[3] = 1000

чтобы в массив записывались именно значения после знака '='. Напрашивается регулярное выражение, только какое  smile 
помогите, пожалуйста, реализовать  smile 
PM MAIL   Вверх
Наставник
Дата 15.11.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



12usver12, не стоит здесь использовать регулярные выражение.


Код




$file_array=array();
// в массиве $file_array_date необходимо хранить, то что вы с файла считали
for($c=0;$c<count($file_array_date);$c++)
{
  $date=explode("=",$file_array_date[$c]);
// то что слева от знака "=" будет в переменной $date[0], справа в переменной $date[1]
  $file_array[count($file_array)]=$date[1];
}



Это сообщение отредактировал(а) Наставник - 15.11.2007, 15:12


--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
skyboy
Дата 15.11.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(12usver12 @  15.11.2007,  13:46 Найти цитируемый пост)
Напрашивается регулярное выражение, только какое

Код

^[^=]*(.*)$

похоже, вот такое.
Но мне кажется, что регулярное выражение - это как если в песочнице ямки эскаватором копать.
код
Код

echo strstr('=','some_text=0123456789');

вернет "=0123456789"
а небольшая модификация
Код

echo substr(strstr('=','some_text=0123456789'),1);

вернет "0123456789"
остается только применить операцию к каждой строке.
т.е. в отличие от file_get_contents + preg_match_all придется делать цикл + substr + strstr, но такой более простой способ заведомо быстрее.

Добавлено через 1 минуту и 24 секунды
Цитата(Наставник @  15.11.2007,  14:08 Найти цитируемый пост)
  $date=explode("=",$file_array_date[$c]);// то что слева от знака "=" будет в переменной $date[0], справа в переменной $date[1]

одно замечание. действие на строке типа
Цитата

123=456=789

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


 




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


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

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