# Sitego (03.06.2016 / 12:01)
Как можно объединить два текстовых файла построчно?
Как просто объединить все файлы в один, я знаю. Но надо объединять два текстовых файла через строки.
Например, берём первую строку из первого файл
Интересная задача) Набыдлокодил функцию:
Посмотреть (+/-)
// $file1, $file2 - путь к файлам
function file_merge($file1, $file2)
{
$file1 = file($file1);
$file2 = file($file2);
$arr1 = array();
$arr2 = array();
$i = 0;
foreach ($file1 AS $val)
{
$arr1[$i] = $val;
$i += 2;
}
$i = 1;
foreach ($file2 AS $val)
{
$arr2[$i] = $val;
$i += 2;
}
$arr = $arr1 + $arr2;
ksort($arr);
foreach ($arr AS $val)
{
file_put_contents('file.txt', trim($val).PHP_EOL, FILE_APPEND);
}
return header('location: file.txt');
}
file_merge('file1.txt', 'file2.txt');
Если в файлах будет разное кол-во строк, например в одном 10 а в другом 15, то эти 5 строк будут просто добавлены в конец файла.
А ещё, если файл в который будет записываться результат уже существует, то результат добавится в конец этого файла.
Да, return можешь изменить или убрать вообще. Я так сделал что бы было видно результат работы функции.
ValekS, спасибо, сейчас попробую
.gif)
Искал, для php ничего не нашёл подобного.
Но я уже правда решил свою задачу по другому, нашёл, как это делается в линукс из консоли
paste -d "\n" file1.txt file2.txt > new_file.txt
и файлы объединяются через одну строку, причём так можно объединять сколько угодно файлов, не только два.
ValekS, да, проверил, твоя функция отлично работает, то что нужно. Ещё раз спасибо
как сделать чтоб пользователь который только зарегистрировался не мог писать юзерам в приват в течении 2х часов?
# Alexis22 (03.06.2016 / 17:24)
как сделать чтоб пользователь который только зарегистрировался не мог писать юзерам в приват в течении 2х часов?
if ($datauser[total_on_site]<7200)
{
echo 'Что бы писать в приват, надо провести на сайте не менее 2х часов';
require('../incfiles/end.php');
exit;
}
# ValekS (03.06.2016 / 14:32)
Интересная задача) Набыдлокодил функцию
Вот именно, гг. Функции вроде бы пишут как раз для уменьшения повторяющегося кода. А у тебя получилось наоборот - в теле функции повторы циклов. Вот тоже самое, но кода почти вдвое меньше, и в этом примере написание функции оправдано.
* (+/-)
function cycle($file, $i = 0) {
$arr = [];
foreach (file($file) as $val) {
$arr[$i] = $val;
$i += 2;
}
return $arr;
}
$arr = cycle('file1.txt') + cycle('file2.txt', 1);
ksort($arr);
foreach ($arr as $val) {
file_put_contents('file.txt', trim($val) . PHP_EOL, FILE_APPEND);
}
header('location: file.txt');
# ДоХтор (03.06.2016 / 18:20)
Вот именно, гг. Функции вроде бы пишут как раз для уменьшения повторяющегося кода. А у тебя получилось наоборот - в теле функции повторы циклов. Вот тоже самое, но кода почти вдвое меньше, и в этом пр
Та... Лучше б ты придумал какую то иную реализацию данной задачи.