Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю
 |
|

10.06.2009, 17:09
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами:
10265091
Репутация:
541
|
|
Сообщение от mailbrush
LEE_ROY, зачем строчка, если есть условие?
ну если у человека не работает explode значед он что-то недоговаривает или недопонимает, из-за чего лучше увидеть строку, чем обьяснение, что сократит время на решение задачи и обьяснение ее словами. во как 
|
|
|

10.06.2009, 17:36
|
|
Познающий
Регистрация: 04.04.2009
Сообщений: 58
С нами:
9001761
Репутация:
19
|
|
Спасибо всем за ответы
Сообщение от FireFenix
Вариант через руглярки
PHP код:
$file = 'file.txt';
$content = file_get_contents($file);
preg_match_all("/(.*?):(.*?)(\r\n|\z)/ism", $content, $match);
for ($i = 0; $i < count($match[0]); $i++)
{
echo('email = ' . $match[1][$i]);
echo('<br>');
echo('password = ' . $match[2][$i]);
echo('<hr>');
}
А как обращаться к переменным в этом случае?
Сообщение от LEE_ROY
лучше увидеть строку
Строка, которую парсю, выглядит так:
mail@mail.ru:moipass
Последний раз редактировалось Dark_Scorpicore; 10.06.2009 в 17:41..
|
|
|

10.06.2009, 17:44
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
|
|
Если кто не в теме - ачат почему - то режет это иногда. Юзер имел в виду mail@mail.ru  assword.
Dark_Scorpicore, я тебе написал, имхо, самый оптимальный вариант.
Теперь с комментами:
PHP код:
foreach(file('mail.txt') as $account) # в цикле обрабатываем каждую строчку файла mail.txt
{
$data=explode(':',$account); # разделяем мейл, пасс
echo $data[0].' - login.'.$data[1].' - pass'; # выводим даные
}
#Мегахакерский скрипт by me
|
|
|

10.06.2009, 18:21
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами:
10265091
Репутация:
541
|
|
Сообщение от mailbrush
Если кто не в теме - ачат почему - то режет это иногда. Юзер имел в виду mail@mail.ru  assword.
Dark_Scorpicore, я тебе написал, имхо, самый оптимальный вариант.
Теперь с комментами:
PHP код:
foreach(file('mail.txt') as $account) # в цикле обрабатываем каждую строчку файла mail.txt
{
$data=explode(':',$account); # разделяем мейл, пасс
echo $data[0].' - login.'.$data[1].' - pass'; # выводим даные
}
#Мегахакерский скрипт by me
перевод строки забыл, будет каша при выводе )
зы ТС мне кажеться у тебя список идет без переноса строки user@mail.ru  ass?user@mail.ru  ass ? тогда нужно делать двойной explode по " : " по второму разделителю, что наврное есть пробел 
|
|
|

10.06.2009, 18:24
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами:
8915117
Репутация:
389
|
|
Сообщение от Dark_Scorpicore
А как обращаться к переменным в этом случае?
PHP код:
<?php
$file = 'file.txt';
$content = file_get_contents($file);
//регулярное выражение (.*?):(.*?)(\r\n|\z) возвратит все вхождения "почтовый ящик:пароль"
//(.*?) - первая и вторая группы вхождений
preg_match_all("/(.*?):(.*?)(\r\n|\z)/ism", $content, $match);
//Перебираем в цикле все найденные позиции
//$i - поизиция элемента в массиве
for ($i = 0; $i < count($match[0]); $i++)
{
//в $match[0] хранится массив всех найденных вхождения, т.е. элементы вида имя почтового ящика:пароль
//$match[0][$i] - обращение к $i позицией в массиве "почтовый ящик:пароль"
echo('group = ' . $match[0][$i]);
echo('<br>');
//в $match[1] хранится массив всех найденных значений по первой группе вхождения, т.е. имя почтового ящика
//$match[1][$i] - обращение к $i позицией в массиве "почтовых ящиков"
echo('email = ' . $match[1][$i]);
echo('<br>');
//в $match[2] хранится массив всех найденных значений по второй группе вхождения, т.е. пароли
//$match[2][$i] - обращение к $i позицией в массиве "паролей"
echo('password = ' . $match[2][$i]);
echo('<hr>');
}
?>
Если ты запустишь скрипт, то всё поймёшь наглядно 
Последний раз редактировалось FireFenix; 10.06.2009 в 18:33..
|
|
|

10.06.2009, 19:07
|
|
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами:
10265091
Репутация:
541
|
|
лажа )
если акки идут в одну строку через пробел, выдаст:
group = user1@mail.ru assword1 user2@mail.ru assword2
email = user1@mail.ru
password = password1 user2@mail.ru  assword2
|
|
|

10.06.2009, 19:14
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
|
|
тогда так:
PHP код:
$accounts=explode(' ',file_get_contetns('mails.txt'));
foreach ($accounts as $account)
{
$var=explode(':',$account);
print_r($var);
}
|
|
|

10.06.2009, 19:56
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами:
8915117
Репутация:
389
|
|
Сообщение от LEE_ROY
лажа )
если акки идут в одну строку через пробел, выдаст:
group = user1@mail.ru assword1 user2@mail.ru assword2
email = user1@mail.ru
password = password1 user2@mail.ru  assword2
Нада делать под конкретный случай! ИМХО 
Или прописывать "или" в разделителе регулярки '(\n|\r\n|\+|\#|\ |\*)'
PHP код:
<?php
$file = 'file.txt';
$separator = '(\r\n|\z)'; // ' ' или '_' или '+' или '\n' или '\#' и т.д. :)
$content = file_get_contents($file);
preg_match_all("/(.*?):(.*?)' . $separator . '/ism", $content, $match);
for ($i = 0; $i < count($match[0]); $i++)
{
echo('group = ' . $match[0][$i]);
echo('<br>');
echo('email = ' . $match[1][$i]);
echo('<br>');
echo('password = ' . $match[2][$i]);
echo('<hr>');
}
?>
Последний раз редактировалось FireFenix; 10.06.2009 в 20:03..
|
|
|

10.06.2009, 20:05
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами:
9410786
Репутация:
2731
|
|
Народ, зачем усложнять задачу? Это простая строчка, разбивка которой может обойтись без регулярок.
FireFenix, даже этот код можна сделать более оптимальным. Зачем использовать цикл
PHP код:
for ($i = 0; $i < count($match); $i++)
если для работы с массивами предназначен цикл
Последний раз редактировалось mailbrush; 10.06.2009 в 20:07..
|
|
|

10.06.2009, 20:20
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами:
8915117
Репутация:
389
|
|
Сообщение от mailbrush
Народ, зачем усложнять задачу? Это простая строчка, разбивка которой может обойтись без регулярок.
Если сделать задачу на все случаи жизни, то регулярки правят миром
Сообщение от mailbrush
FireFenix, даже этот код можна сделать более оптимальным. Зачем использовать цикл
foreach - да несомненно выведет всё что есть. Но ведь если мне нужна только первая группа выборки? или вторую присвоить/найти различия с другим массивам? тогда поэлементно может и не наглядно, зато практично
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Assembler FAQ
|
GlobalRave |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
2 |
15.02.2009 18:59 |
|
Конец строки
|
nc.STRIEM |
PHP |
11 |
04.07.2006 00:44 |
|
конец строки
|
Mastermind |
PHP |
15 |
18.08.2005 00:28 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|