Различные вопросы по PHP и MySQL

254K
.
ValekS
Ей 25
# 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 можешь изменить или убрать вообще. Я так сделал что бы было видно результат работы функции.
.
Enter нажат, к чему теперь рыданья…

ValekS, спасибо, сейчас попробую
Искал, для php ничего не нашёл подобного.

Но я уже правда решил свою задачу по другому, нашёл, как это делается в линукс из консоли
paste -d "\n" file1.txt file2.txt > new_file.txt
и файлы объединяются через одну строку, причём так можно объединять сколько угодно файлов, не только два.

.
Enter нажат, к чему теперь рыданья…

ValekS, да, проверил, твоя функция отлично работает, то что нужно. Ещё раз спасибо

.

как сделать чтоб пользователь который только зарегистрировался не мог писать юзерам в приват в течении 2х часов?

.
# Alexis22 (03.06.2016 / 17:24)
как сделать чтоб пользователь который только зарегистрировался не мог писать юзерам в приват в течении 2х часов?
if ($datauser[total_on_site]<7200)
{
echo 'Что бы писать в приват, надо провести на сайте не менее 2х часов';
require('../incfiles/end.php');
exit;
}
.
# desay (03.06.2016 / 17:30)
if ($datauser[total_on_site]<7200)
{
echo 'Что бы писать в приват, надо провести на сайте не менее 2х часов';
require('../incfiles/end.php');
exit;
}
а куда вставлять?
.

Alexis22,

mail\includes\write.php
.

спасибо

.
# 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');
.
Ей 25
# ДоХтор (03.06.2016 / 18:20)
Вот именно, гг. Функции вроде бы пишут как раз для уменьшения повторяющегося кода. А у тебя получилось наоборот - в теле функции повторы циклов. Вот тоже самое, но кода почти вдвое меньше, и в этом пр
Та... Лучше б ты придумал какую то иную реализацию данной задачи.
Всего: 7969