[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регуляркой
RCuPeR
Имеется текстовый файл вида:

78.137.60.248|1309365232|root
78.137.60.248|1309365254|root
78.137.60.248|1309365333|root


Нужно получить каждый элемент.
Что-то типа:


$foo[0][0] = 78.137.60.248;
$foo[0][1] = 1309365232;
$foo[0][2] = 'root';

$foo[1][0] = 78.137.60.248;
$foo[1][1] = 1309365254;
$foo[1][2] = 'root';

$foo[2][0] = 78.137.60.248;
$foo[2][1] = 1309365333;
$foo[2][2] = 'root';




Спустя 13 минут, 16 секунд (29.06.2011 - 19:52) bulgakov написал(а):
Попробуйте это:



$str = file('file.txt');
$result = array();
for($i=0; $i<count($str); $i++){
$result[$i] = explode('|', $str);
}


Спустя 10 минут, 7 секунд (29.06.2011 - 20:02) alex12060 написал(а):
RCuPeR

O_____________________________O
Ты меня удивляешь О_О


$strs = '
78.137.60.248|1309365232|root
78.137.60.248|1309365254|root
78.137.60.248|1309365333|root'
;

$arr = array();
$foo = array();
$arr = explode("\n", $strs);

foreach($arr as $key => $val) {
$foo[$key-1] = explode('|', $val);
}

echo $foo[0][0].'<br />';
echo $foo[0][1].'<br />';
echo $foo[0][2].'<br /><br />';

echo $foo[1][0].'<br />';
echo $foo[1][1].'<br />';
echo $foo[1][2].'<br /><br />';

echo $foo[2][0].'<br />';
echo $foo[2][1].'<br />';
echo $foo[2][2].'<br />';

die();

Спустя 3 минуты, 21 секунда (29.06.2011 - 20:05) RCuPeR написал(а):
index.php

<?php

$str = file('./online.txt');
$result = array();
for($i=0; $i<count($str); $i++){
$result[$i] = explode('|', $str);
}

print_r($result);


online.txt

78.137.60.248|1309359805
78.137.60.248|1309359805
78.137.60.248|1309359805


Возвращает пустой двумерный массив:
Array ( [0] => Array ( [0] => Array ) [1] => Array ( [0] => Array ) [2] => Array ( [0] => Array ) )

Спустя 7 минут, 46 секунд (29.06.2011 - 20:13) RCuPeR написал(а):
alex12060, спасибо, работает.
Просто уже устал ужас как, под конец дня башка совсем не варит.
А на завтра не хотелось оставлять.

Спустя 1 минута, 8 секунд (29.06.2011 - 20:14) alex12060 написал(а):
RCuPeR

Ага, бывает такое)
Я тоже вчера тупил по страшному smile.gif

Спустя 2 минуты, 6 секунд (29.06.2011 - 20:16) Winston написал(а):
У меня только так получилось извратится
    $str = "78.137.60.248|1309365232|root
78.138.80.248|1309365254|root
78.139.70.248|1309365333|root"
;

preg_match_all("/([0-9\.]+)|([0-9]+)|([a-z]+)/", $str, $mt);

foreach($mt[0] AS $v)
$mas[] = $v;

$mas = array_chunk($mas, 3);

echo '<pre>';
print_r($mas);
echo '</pre>';


Через preg_split не получилось :(

Результат
Свернутый текст
Цитата
Array
(
    [0] => Array
        (
            [0] => 78.137.60.248
            [1] => 1309365232
            [2] => root
        )

    [1] => Array
        (
            [0] => 78.138.80.248
            [1] => 1309365254
            [2] => root
        )

    [2] => Array
        (
            [0] => 78.139.70.248
            [1] => 1309365333
            [2] => root
        )

)

Спустя 39 секунд (29.06.2011 - 20:17) bulgakov написал(а):
Да с foreach лучше) как-то забыл тоже)

Спустя 57 секунд (29.06.2011 - 20:18) bulgakov написал(а):
Цитата
У меня только так получилось извратится

Все вам лиш бы поизвращатся)



$str = file('test.txt');
$result = array();
foreach($str as $k=>$v){
$result[$k] = explode('|', $v);
}
print_r($result);

Спустя 5 минут (29.06.2011 - 20:23) KarinaS написал(а):
Цитата (bulgakov @ 29.06.2011 - 17:18)
Цитата
У меня только так получилось извратится

Все вам лиш бы поизвращатся)



$str = file('test.txt');
$result = array();
foreach($str as $k=>$v){
$result[$k] = explode('|', $v);
}
print_r($result);

Нормально! И мне пригодилось по ходу... smile.gif

Спустя 1 минута, 6 секунд (29.06.2011 - 20:24) Winston написал(а):
Цитата (bulgakov @ 29.06.2011 - 20:18)
Все вам лиш бы поизвращатся)

Мы не ищем легких путей biggrin.gif

Спустя 1 минута, 12 секунд (29.06.2011 - 20:25) alex12060 написал(а):
bulgakov

Тут вообще бреееед, прости конечно.
Затри, пока не разошлось)

Спустя 3 минуты, 22 секунды (29.06.2011 - 20:28) RCuPeR написал(а):
МужЫки, всем спасибо, все работает на "ура"!
Теперь с уверенностью можно ложится спатки smile.gif

Спустя 10 секунд (29.06.2011 - 20:28) bulgakov написал(а):

$str = file('test.txt');
$result = array();
foreach($str as $k=>$v){
$result[] = explode('|', $v); // можно я думаю и без $k в $result[]
}
print_r($result);


Спустя 2 минуты, 9 секунд (29.06.2011 - 20:31) bulgakov написал(а):
Цитата
Тут вообще бреееед, прости конечно.
Затри, пока не разошлось)


Гм.. и в чем же конкретно бред? Буду благодарен если укажешь на ошибки..

Спустя 1 минута, 32 секунды (29.06.2011 - 20:32) alex12060 написал(а):
bulgakov

А, пардон, ты функцией считываешь)
Окей, у тебя написано то же, что и у меня smile.gif

Спустя 46 секунд (29.06.2011 - 20:33) bulgakov написал(а):
Цитата
Окей, у тебя написано то же, что и у меня

У дураков мысли сходятся) шутка)

Спустя 1 минута, 34 секунды (29.06.2011 - 20:34) RCuPeR написал(а):
Самый простой пример оказался у Булгакова:


<?php
$str = file('online.txt');

foreach($str as $v){
$result[] = explode('|', $v); // можно я думаю и без $k в $result[]
}
echo '<pre>';
print_r($result);
echo '</pre>';


PHPprogramer, одному в карму плюсанул. К остальным не добрался :rolleyes:

Спустя 2 минуты, 39 секунд (29.06.2011 - 20:37) bulgakov написал(а):
Цитата
Самый простой пример оказался у Булгакова:

У нас с alex12060 практически одинаковый код, просто он обрабатывал строку, а я файл вот и вся разница.

Спустя 6 минут, 45 секунд (29.06.2011 - 20:44) bulgakov написал(а):
Свернутый текст
Надо приучить себя писать ответы не по теме в свернутом тексте)

Спустя 36 минут, 19 секунд (29.06.2011 - 21:20) Winston написал(а):
Цитата (RCuPeR @ 29.06.2011 - 20:34)
Самый простой пример оказался у Булгакова:

Кто сказал? А ? :D
    $data = file('file.txt');
$data = array_map(create_function('$data', 'return explode("|",$data);'), $data);

echo '<pre>';
print_r($data);
echo '</pre>';


Нет предела совершенству :D

Спустя 29 минут, 33 секунды (29.06.2011 - 21:50) RCuPeR написал(а):
Эдо как ?!
Очень занимательно. Поправим прошлый скриптец wink.gif

Спустя 1 минута, 35 секунд (29.06.2011 - 21:51) Winston написал(а):
Цитата (RCuPeR @ 29.06.2011 - 21:50)
Эдо как

Цитата (PHPprogramer @ 29.06.2011 - 21:20)
Нет предела совершенству biggrin.gif

Возможно кто еще оптимальнее придумает ?

Спустя 4 минуты, 32 секунды (29.06.2011 - 21:56) RCuPeR написал(а):
А ну, уважаемые Знатоки, гляньте-ка в эту тему PHP Proxy.

Спустя 2 часа, 49 минут, 14 секунд (30.06.2011 - 00:45) walerus написал(а):
Цитата (bulgakov @ 29.06.2011 - 17:28)

$str = file('test.txt');
$result = array();
foreach($str as $k=>$v){
  $result[] = explode('|', $v); // можно я думаю и без $k в $result[]
}
print_r($result);



Если на то пошло и скобки не нужны и as $k => ))))

$str = file('test.txt');
$result = array();
foreach($str as $v)
$result[] = explode('|', $v);

print_r($result);

Спустя 3 минуты, 15 секунд (30.06.2011 - 00:48) walerus написал(а):
Цитата (RCuPeR @ 29.06.2011 - 18:56)
А ну, уважаемые Знатоки, гляньте-ка в эту тему PHP Proxy.

Ну ответил же ...

Спустя 3 часа, 13 минут, 2 секунды (30.06.2011 - 04:01) bulgakov написал(а):
Цитата
Если на то пошло и скобки не нужны

Скобки я привык всегда, даже если тело состоит из одной строчки. Я думаю это полезная привычка) Во всяком случае мне визуально так удобнее.


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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