Всем привет.Такая вот проблемка.Необходимо записать содержимое двух файлов(логинов и паролей из двух файлов),объединив их символов ";" в третий фаил.Вот код,по непонятным причинам неработающий: PHP: <?php $logins = file('logins.txt'); $passwords = file('passwords.txt'); for ($i=0;$i <= count($logins);$i++) { file_put_contents('general.txt',"$logins[$i];$passwords[$i]", FILE_APPEND); } ?> Этот код записывает содержимое оных в фаил general.txt,но получается совсем не то,что ожидалось.Проверьте сами.
Велемир Как раз то что ожидается, а не то, что думаете вы PHP: "{$logins[$i]};{$passwords[$i]}" а лучше не ебать мозг и: PHP: trim($logins[$i]).';'.trim($passwords)."\r\n"[$i]
PHP: <?php $logins = file('logins.txt'); $passwords = file('passwords.txt'); $appendTo = 'general.txt'; $i = 0; $file = fopen($appendTo, 'a'); foreach ($logins AS $login) { fputs($file, "$login;{$passwords[$i]}\r\n"); $i++; } fclose($file); ?>
Gifts,первый вариант работает также,как и предыдущий.Второй вообще не работает,хоть я его уже и пробовал.Ща проверю остальные.
а если у тебя словарь на 40 мегов даже - конечно не будет работать. Ошибка начинающих - считать массив в цикле. count лучше привыкать выносить за цикл сразу. Просто не успевает. Сначала посчитал, потом цикл.
действительно почемуб невоспользоваться $a=fopen("login.txt", "r"); while(!feof($a)){ и т д- здесь проблемм точно недолжно возникать
Ну,звиняйте,но у мя не заработало(.Вот рабочий пример: PHP: <?php $logins = explode("\r\n",implode("",file('logins.txt'))); $passwords = file('passwords.txt'); $appendTo = 'general.txt'; $i = 0; $file = fopen($appendTo, 'a'); foreach ($logins AS $login) { fputs($file, "$login;{$passwords[$i]}"); $i++; } fclose($file); ?> В первой строке кода реально непонятно,что происходит)),хотя функции знаю
PHP: <?php $logins = 'logins.txt'; $passwords = 'passwords.txt'; $out = 'accounts.txt'; $logins = array_map('trim', file($logins)); $passwords = array_map('trim', file($passwords)); $file = fopen($out, 'a+'); foreach ($logins as $key => $login) { fwrite($file, $logins[$key] . ';' . $passwords[$key] . "\r\n"); } fclose($file); ?> Юзай
file делает массив элемтов implode склеивает обратно в строку вставляя между ними пробел explode опять разбивает на массив и в качестве разделителя перенос строки ...
LolFEm попровочка, дабы не взорвать неокрепший моск ТС > implode("",file('logins.txt')); implode склеивает обратно в строку вставляя между ними НИЧЕГО. сказано же "" вобщем $str=implode("",file('logins.txt')) равносильно поместить весь файл в $str
ебать ту люсю наркоман, столько лишних маневров, а можно было бы просто юзануть трим. PHP: <?php $logins = file('logins.txt'); $passwords = file('passwords.txt'); for ($i=0;$i <= count($logins);$i++) { file_put_contents('general.txt', trim($logins[$i]).';'.trim($passwords[$i]), FILE_APPEND); } ?>
Пасип за объяснение,комрады.То бишь если у нас пять строк Вася Петя Маня Люся Аня то у нас получится ВасяПетяМаняЛюсяАня,и,если между ними есть пробельный символ,то эксплоуд напугает бедные строчки(.Правильно мыслю?.
прости, но тебя в школе читать не учили? и так: 1. заходим на какой-нибудь php.su 2. видим там вверху поиск по сайту 3. вбиваем в него название нужной тебе функции 4. из списка найденый тем на яндексе выбираем ту, что подходит 5. блять _читаем_ о том, как работает функция там даже примеры кода приведены и последствия их выполнения! просто такие вопросы, ну просто слов нет! да и вообще если читать в школе не учили, то взял бы, открыл редактор, накидал простенький скрипт показывающий, что делает та или иная функция, да поэкспериментировал с ним
Работает с большими файлами, но если файл с паролями будет очень большой, то будет немного медленно. PHP: <?php $a = fopen('a.txt', 'rt'); //файл с логинами $b = fopen('b.txt', 'rt'); //файл с паролями $c = fopen('c.txt', 'wt'); //файл результата $separator = ';'; //разделитель $temp = ''; while(!feof($a)) { $temp = trim(fgets($a)); //для каждого логина перебираем пароли while(!feof($b)) fwrite($c, $temp.$separator.trim(fgets($b))."\n"); fseek($b, 0); } fclose($a); fclose($b); fclose($c); ?>