HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.06.2009, 16:00
diehard
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме:
2590715

Репутация: 659


Отправить сообщение для diehard с помощью ICQ
По умолчанию

Код:
preg_match_all("/(.+):(.+)/", file_get_contents("accs.txt"), $accs);
 
Ответить с цитированием

  #2  
Старый 10.06.2009, 16:18
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Ну вот 3 варианта обработки файла:
PHP код:
<?php
  
// вариант 1
  
foreach (explode ("\n"file_get_contents ('1.txt')) as $line) {
    if (empty (
$line))
      continue;
    list (
$email$pass) = explode (':'$line);
    echo 
"$email\t$pass\n";
  }

  
// вариант 2
  
foreach (file ('1.txt') as $line) {
    
$line rtrim ($line);
    if (empty (
$line))
      continue;
    list (
$email$pass) = explode (':'$line);
    echo 
"$email\t$pass\n";
  }

  
// вариант 3
  
$content file_get_contents ('1.txt');
  
$content preg_replace ('/\n+/'"\n"$content);
  
preg_match_all ('/(.+?):(.+?)\n/'$content$m);
  for (
$i 0$i count ($m[1]); $i++) {
    echo 
"{$m[1][$i]}\t{$m[2][$i]}\n";
  }
?>
В последнем случае надо б иметь в конце файла пустую строку

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

  #3  
Старый 10.06.2009, 16:27
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

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

Цитата:
Сообщение от krypt3r  
Ну вот 3 варианта обработки файла:
В последнем случае надо б иметь в конце файла пустую строку
Читай внимательнее ! Все варианты уже выложили и они гораздо короче. А для регулярок я выкладывал, где можно без пустой последней строки!

Последний раз редактировалось FireFenix; 10.06.2009 в 16:30..
 
Ответить с цитированием

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

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
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 
 
Ответить с цитированием

  #5  
Старый 10.06.2009, 18:21
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 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 по " : " по второму разделителю, что наврное есть пробел
 
Ответить с цитированием

  #6  
Старый 10.06.2009, 19:07
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

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

  #7  
Старый 10.06.2009, 19:56
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 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..
 
Ответить с цитированием

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

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

тогда так:
PHP код:
$accounts=explode(' ',file_get_contetns('mails.txt'));
foreach (
$accounts as $account)
{
$var=explode(':',$account);
print_r($var);

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

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

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

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

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

  #10  
Старый 10.06.2009, 20:20
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 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.XYZ