ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 10.06.2009, 17:09
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами: 10265091

Репутация: 541


По умолчанию

Цитата:
Сообщение от mailbrush  
LEE_ROY, зачем строчка, если есть условие?
ну если у человека не работает explode значед он что-то недоговаривает или недопонимает, из-за чего лучше увидеть строку, чем обьяснение, что сократит время на решение задачи и обьяснение ее словами. во как
 
Ответить с цитированием

  #12  
Старый 10.06.2009, 17:36
Dark_Scorpicore
Познающий
Регистрация: 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..
 
Ответить с цитированием

  #13  
Старый 10.06.2009, 17:44
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Цитата:
mail@mail.ruassword
Если кто не в теме - ачат почему - то режет это иногда. Юзер имел в виду mail@mail.ruassword.

Dark_Scorpicore, я тебе написал, имхо, самый оптимальный вариант.
Теперь с комментами:
PHP код:
foreach(file('mail.txt') as $account# в цикле обрабатываем каждую строчку файла mail.txt

$data=explode(':',$account); # разделяем мейл, пасс
echo $data[0].' - login.'.$data[1].' - pass'# выводим даные

#Мегахакерский скрипт by me 
 
Ответить с цитированием

  #14  
Старый 10.06.2009, 18:21
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами: 10265091

Репутация: 541


По умолчанию

Цитата:
Сообщение от mailbrush  
Если кто не в теме - ачат почему - то режет это иногда. Юзер имел в виду mail@mail.ruassword.

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.ruass?user@mail.ruass ? тогда нужно делать двойной explode по " : " по второму разделителю, что наврное есть пробел
 
Ответить с цитированием

  #15  
Старый 10.06.2009, 18:24
FireFenix
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #16  
Старый 10.06.2009, 19:07
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
С нами: 10265091

Репутация: 541


По умолчанию

лажа )
если акки идут в одну строку через пробел, выдаст:
group = user1@mail.ruassword1 user2@mail.ruassword2
email = user1@mail.ru
password = password1 user2@mail.ruassword2
 
Ответить с цитированием

  #17  
Старый 10.06.2009, 19:14
mailbrush
Познавший АНТИЧАТ
Регистрация: 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);

 
Ответить с цитированием

  #18  
Старый 10.06.2009, 19:56
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
С нами: 8915117

Репутация: 389
По умолчанию

Цитата:
Сообщение от LEE_ROY  
лажа )
если акки идут в одну строку через пробел, выдаст:
group = user1@mail.ruassword1 user2@mail.ruassword2
email = user1@mail.ru
password = password1 user2@mail.ruassword2
Нада делать под конкретный случай! ИМХО
Или прописывать "или" в разделителе регулярки '(\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..
 
Ответить с цитированием

  #19  
Старый 10.06.2009, 20:05
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
С нами: 9410786

Репутация: 2731


По умолчанию

Народ, зачем усложнять задачу? Это простая строчка, разбивка которой может обойтись без регулярок.
FireFenix, даже этот код можна сделать более оптимальным. Зачем использовать цикл
PHP код:
for ($i 0$i count($match); $i++) 
если для работы с массивами предназначен цикл
PHP код:
foreach() 

Последний раз редактировалось mailbrush; 10.06.2009 в 20:07..
 
Ответить с цитированием

  #20  
Старый 10.06.2009, 20:20
FireFenix
Постоянный
Регистрация: 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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.