вытащить login:pass из файла

Статус
В этой теме нельзя размещать новые ответы.

Kol0book

Постоялец
Регистрация
17 Июл 2009
Сообщения
55
Реакции
5
Привет! ребят, нужно из текстового файла вида:

login : pass
login : pass
login : pass

вытащить отдельно логин и пароль в скрипт
то есть поместить их в $login и $pass

мне просто главное как вытащить хотя бы первую строку login:pass
Спасибо!
 
Если файл содержит записи вида
login1 : pass1
login2 : pass2
login3 : pass3
то следующий код разберет записи в массив
$file = file("pass.txt");
$result = array();
foreach ($file as $value) {
$s = explode(" : ", $value);
$item = array();
$item['login'] = $s[0];
$item['pass'] = $s[1];
$result[] = $item;
}
Потом забираешь логины и пароли
$result[0]['login']
$result[0]['password']
и т.д.
 
в меем понимании код слишком нагрузит систему, как в плане памяти так и по скорости работы.

PHP:
$log=$_POST['login'];
$pas=$_POST['password'];

$file = file("pass.txt");
$flag=0;
foreach ($file as $value) {
 if(trim($value)=="$log:$pas"){
  list($login,$password) = explode(" : ", trim($value));
  $flag=1;
  break;
 }
 if($flag==1){
  echo "$login:$password";
 }else{
  die('Netu tAkix');
 }
}
 
Kol0book, сделайте все это выдергивание через МС Эксель :)
 
А возможно последний код применить для 4рех значений?
Имею: [001]:nickname:login:password
Хочу из списка забрать, только login и password.

Использую функцию explode, что бы разбить строку на подстроки.
PHP:
$data = "[0]:admin:E5bmAA:mail@club.ru"; 
list($cifra, $user, $login, $pass) = explode(":", $data);
echo "$login:$pass";
Работает, но у меня большой список.
Делаю так.
PHP:
$data = file("p1s.txt"); 
list($cifra, $user, $login, $pass) = explode(":", $data);
echo "$login:$pass";
Не работает. Выводит только ":"
Меняю на
PHP:
$file = fopen("http://site.ru/p1s.txt", "r");
Вылетают ошибки:
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /home/siteru/public_html/11.php on line 2
Warning: fopen(Для просмотра ссылки Войди или Зарегистрируйся) [function.fopen]: failed to open stream: no suitable wrapper could be found in /home/siteru/public_html/11.php on line 2
:
Тоже самое происходит, если взять последний код(немного переделанный)
PHP:
$cif=$_POST['cifra']; 
$user=$_POST['nick'];
$log=$_POST['login']; 
$pas=$_POST['password']; 
 
$file = file("p1s.txt"); 
$flag=0; 
foreach ($file as $value) { 
 if(trim($value)=="$cif:$user:$log:$pas"){ 
  list($cifra, $nick, $login, $password) = explode(":", trim($value)); 
  $flag=1; 
  break; 
 } 
 if($flag==1){ 
  echo "$login:$password"; 
 }else{ 
  die('Netu tAkix'); 
 } 
}
Ответ: Netu tAkix. Помогите пожалуйста разобраться. Огромное спасибо!
 
почитай про функцию preg_match_all и PREG_PATTERN_ORDER
 
Пробывал через регулярные выражения написать, но не получилось. Запутался выставляя квантификаторы.Мне показалось, что выше описанным способом намного проще.
 
PHP:
$file = file_get_contents("base.txt");
$data = explode("\n",$file);
foreach($data as $value)
{
$conf = explode(":",$value);
$users [] = $conf;
}

для первого пользователя:
id - $users[0][0]
login - $users[0][1]
password - $users[0][2]
email - $users[0][3]

для остальных по аналогии
 
Значит так, по порядку

PHP:
$data = file("p1s.txt"); 
list($cifra, $user, $login, $pass) = explode(":", $data);
echo "$login:$pass";
Не работает. Выводит только ":"
file возвращает массив, и explode естественно не может тут работать

Меняю на
PHP:
$file = fopen("http://site.ru/p1s.txt", "r");
Вылетают ошибки:
Открывать удалённый файл в данном счучаи- глупо, надо юрзать относительный путь, как в нижнем примере

Тоже самое происходит, если взять последний код(немного переделанный)
PHP:
$cif=$_POST['cifra']; 
$user=$_POST['nick'];
$log=$_POST['login']; 
$pas=$_POST['password']; 
 
$file = file("p1s.txt"); 
$flag=0; 
foreach ($file as $value) { 
 if(trim($value)=="$cif:$user:$log:$pas"){ 
  list($cifra, $nick, $login, $password) = explode(":", trim($value)); 
  $flag=1; 
  break; 
 } 
 if($flag==1){ 
  echo "$login:$password"; 
 }else{ 
  die('Netu tAkix'); 
 } 
}
Ответ: Netu tAkix. Помогите пожалуйста разобраться. Огромное спасибо!
Не работает потому-что сравнение идёт только первого значения надо сравнение $flag==1 вынести за цикл
PHP:
$cif=$_POST['cifra']; 
$user=$_POST['nick'];
$log=$_POST['login']; 
$pas=$_POST['password']; 
 
$file = file("p1s.txt"); 
$flag=0; 
foreach ($file as $value) { 
 if(trim($value)=="$cif:$user:$log:$pas"){ 
  list($cifra, $nick, $login, $password) = explode(":", trim($value)); 
  $flag=1; 
  break; 
 } 
 
} 
 if($flag==1){ 
  echo "$login:$password"; 
 }else{ 
  die('Netu tAkix'); 
 }
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху