[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как прочитать построчно содержимое переменной?
sitebuilder
Как это реализовать на PHP?

Имеется переменная $x. Она содержит данные такого вот формата:

id01:11111
id02:22222
id03:33333
id04:44444
id05:55555
id06:66666
id07:77777
id08:88888
id09:99999
id10:10101

Количество строк может быть разным, но формат записи один и тот же: переменная, двоеточие и значение переменной.

Как прочитать построчно и записать каждое значение в свою переменную?






Спустя 8 минут, 36 секунд (28.02.2012 - 20:19) h234 написал(а):

$lines = explode("\n",$x);

foreach ($lines as $value) {
$line = explode(":", $value);
$$line[0] = $line[1];
}

echo $id02;

Спустя 12 минут, 13 секунд (28.02.2012 - 20:31) sitebuilder написал(а):
Цитата (h234 @ 28.02.2012 - 17:19)

$lines = explode("\n",$x);

foreach ($lines as $value) {
$line = explode(":", $value);
$$line[0] = $line[1];
}

echo $id02;

Спасибо. Отличный способ!

Спустя 1 минута, 59 секунд (28.02.2012 - 20:33) nugle написал(а):
как вариант, можно через регулярки, так вот
preg_match_all('#(id\d+).(\d*)#', $str, $arr);
В чем преимущество?разделитель может быть любой

Спустя 3 часа, 40 минут, 45 секунд (29.02.2012 - 00:14) Winston написал(а):
Или решение в одну строчку :D
$str = '
id01:11111
id02:22222
id03:33333
id04:44444
id05:55555
id06:66666
id07:77777
id08:88888
id09:99999
id10:10101'
;

preg_replace('/^(.*):(.*)$/emU', '${"$1"} = "$2";', $str);

echo $id01; // 11111
echo $id02; // 22222

Спустя 11 минут, 28 секунд (29.02.2012 - 00:25) Winston написал(а):
Или так еще
$str = '
id01:11111
id02:22222
id03:33333
id04:44444
id05:55555
id06:66666
id07:77777
id08:88888
id09:99999
id10:10101'
;

preg_match_all("/^(.*):(.*)$/mU", $str, $match);
$vars = array_combine($match[1], $match[2]);
extract($vars, EXTR_SKIP);

echo $id01; // 11111
echo $id02; // 22222

Спустя 3 месяца, 2 дня, 20 часов, 54 минуты, 34 секунды (31.05.2012 - 21:20) webpro1.ru написал(а):
Цитата (h234 @ 28.02.2012 - 17:19)

$lines = explode("\n",$x);

foreach ($lines as $value) {
$line = explode(":", $value);
$$line[0] = $line[1];
}

echo $id02;

spasibo
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.