
Oleg
21.01.2017
15:11:36
array_walk(array_chunk(file('myfile.txt'), 10), function($value, $key, $prefix){file_put_contents($prefix.'_'.$key.'.txt', $value);}, 'newfilename' );
file_put_contents (s пропустил) в первом варианте.

zEvilz
21.01.2017
15:13:43
сейчас работает

Oleg
21.01.2017
15:14:53
?

Google

zEvilz
21.01.2017
15:16:03
а что теоретически шустрее? fopen+fwrite+fclose или file_put_contents?

Oleg
21.01.2017
15:18:14
file_put_contents

zEvilz
21.01.2017
15:18:43
ок, спасибо

Oleg
21.01.2017
15:22:23
ИМХО. Потому как fopen идет команда на открытие файла, потом дескриптор открытого файла передается обратно в "пхп" код, делается связка, потом какждый fwrite получетс пхпешный дескриптор, переводит в системный, пишет по нему в файл. Потом на закрытии аналогично. А при file_put_contents, на системном уровне открылось, пихнулось, закрылось, получило код ошибки.

Роман
21.01.2017
15:52:21
Люди. Такая проблема с composer. Пытаюсь стабилизировать набор пакетов, чтобы базовый пакет мог ставиться с minimum-stability по умолчанию, т.е. stable. Свои-то пакеты все стабилизированы, но один из них зависит от стороннего пакета, который есть только в dev-версии. Соответственно, установка обламывается по «conflict with your requirements or minimum-stability». Если ли возможность как-то указать в своём пакете что-то типа «я знаю, что делаю», чтобы корневой пакет мог работать с minimum-stability: stable?

dypa
21.01.2017
16:16:14
укажи именно этот пакет как не стабильным

Роман
21.01.2017
16:17:13
@dev в версии? Для некорневых composer.json оно игнорируется.

zEvilz
21.01.2017
16:17:20
ИМХО. Потому как fopen идет команда на открытие файла, потом дескриптор открытого файла передается обратно в "пхп" код, делается связка, потом какждый fwrite получетс пхпешный дескриптор, переводит в системный, пишет по нему в файл. Потом на закрытии аналогично. А при file_put_contents, на системном уровне открылось, пихнулось, закрылось, получило код ошибки.
с мелкими файлами нормально работает. скормил скрипту файл 26мб с 2,5млн строк с делением по 1млн. сервер выдал 500 ошибку. еще больше лимит памяти делать или каким то другим образом делать разбивку? сейчас выделено 256мб

Серёга
21.01.2017
16:23:04

zEvilz
21.01.2017
16:23:23
да
от 1млн строк

Серёга
21.01.2017
16:25:22
Тогда память не трогай, читай большой файл построчно и пиши по счётчику в новые файлы

zEvilz
21.01.2017
16:27:54
fgets?

Google

Серёга
21.01.2017
16:32:02
Функции file() и file_get_contents() лучше не используй для больших файлов и сам не забудь поэкспериментировать, а то может я чего не знаю или обманул где то:-)

zEvilz
21.01.2017
16:33:31
обычный текстовый
....
357516540
357516568
357516669
.....

Серёга
21.01.2017
16:36:09
Ты ещё наверное в веб морде это делаешь?

Oleg
21.01.2017
16:47:30
Какая система? Обязательно пхп? Если линух, то там одна команда, можно попробовать через ехец или систем если шела нету

zEvilz
21.01.2017
16:48:02
vps, linux

Oleg
21.01.2017
16:55:25
split -l (кол-во линний)
http://rus-linux.net/MyLDP/consol/split.html

zEvilz
21.01.2017
16:56:27
пошустрее должно быть
поделил за 1 сек)

Oleg
21.01.2017
17:09:41
Я делил 50 гиговые текстовики ?

zEvilz
21.01.2017
17:10:27
осталось только с параметрами разобраться)
может кому понадобится:
array_map("unlink", glob('output*'));
array_map("unlink", glob('input*'));
$tmp_name = $_FILES['file']['tmp_name'];
$name = 'input.txt';
move_uploaded_file($tmp_name, $name);
exec('split -l 1000000 input.txt output.');
$i = 0;
foreach (glob('output.*') as $filename) {
$i++;
rename($filename, 'output_'.$i.'.txt');
$link = 'https://'.$_SERVER['SERVER_NAME'].'/devider/output_'.$i.'.txt';
echo '<a href="'.$link.'">'.$link.'</a><br />';
}

Oleg
21.01.2017
17:44:41
В сплит можно задать чтобы он числовые ключи отдавал сразу, тогда не нужно ренейм.

Alex.
21.01.2017
17:45:01
Привет народ,пару месяцев назад сдал ZCPE,планирую плотно сесть за фреймворки, посмотрел ZF3,комьюнити что то не нашел,документация ветка 2.4, по 3 все еще нет. Кто что посоветует?Что сейчас востребовано на рынке?

zEvilz
21.01.2017
17:45:31

Oleg
21.01.2017
17:46:19
-d use numeric suffixes starting at 0, not alphabetic
—numeric-suffixes[=FROM]
same as -d, but allow setting the start value
-a, —suffix-length=N
generate suffixes of length N (default 2)

Google

zEvilz
21.01.2017
18:12:08
Не заметил)


Kirill
21.01.2017
23:06:53
Может быть будет кому интересна вакансия по Laravel.
ЗП от 125 000 руб.
Санкт-Петербург, Петроградская
Опыт: 3–6 лет
Обязанности: Разработка high-load проекта по мониторингу рекламы (от себя - проект очень перспективный, B2B, уже написана сама начинка и работает, не стартап!)
Требования:
Опыт работы в веб-программировании от 3-х лет;
Опыт работы PHP (laravel);
Знание и опыт работы с JS (angular, reactjs, native), Postgresql, Redis, Memcached;
Опыт работы с Elasticsearch && kibana,
Опыт работы с Bootstrap;
Опыт работы c Git;
Опыт работы с bash;
Опыт работы с PostgreSQL;
Опыт работы с различным NoSQL;
Знание английского языка на уровне чтения технической документации и общения с иностранным техническим персоналом;
Умение работать в команде, ответственность, инициативность, желание развиваться;
Желание усваивать новую информацию
Приветствуется:
Хорошее знание Python;
Опыт использования Grafana
Условия:
Отличный офис в центре города (м. Петроградская);
Комфортные условия + неформальная обстановка;
Еда в офисе + оплачиваемые обеды;
Оплата спорта;
Гибкий восьмичасовой график работы;
Оформление по ТК, полный соц.пакет + полис ДМС;
Гибкий график работы (предпочтительно с 12.00-21.00).
Если интересно - пишите мне ЛС плиз.
Модеры, сорри за спам!


dypa
22.01.2017
06:38:36

Kirill
22.01.2017
07:56:52

Dmitry
22.01.2017
09:12:25
вот если бы это был проект по мониторингу софта для мониторинга рекламных сетей...

Иван
22.01.2017
13:20:14
Коллеги, есть знатоки редиса тут?
Приветствую

Pavel
22.01.2017
13:21:55
А что нужно то?

Pavel
22.01.2017
13:22:14
Я с ним работал года 4, ну не сказать что прямо вдоль и поперек

Ильдар
22.01.2017
13:22:53
Короче. Проблема такая
бьюсь пару дней уже
Есть проект, у него мультидоменность
домен под фронт и под бэк
когда чувак логиниться на фронте его 302 редиректом отправляет на домен бека
но на самом беке уже сессии нет
Тоесть

Google

Ильдар
22.01.2017
13:24:19
Auth:: check false
Долго думал что за фигня, но увидел в env файле стоит session driver redis
думаю что редис просто не подцепился
связка vm+homestead+vagrant
redis стоит
прошу благословления коллеги
на production все ок
а, я не сказал что это все Laravek
Laravel*

Admin
ERROR: S client not available

Pavel
22.01.2017
13:28:20
Да это даже непонятно причем тут редис
Во-первых, сессия не распространяется на соседние домены
Во-вторых, на поддомены она тоже не всегда распространяется - там надо в куках кажется добавить точку, чтобы это происходило

Ильдар
22.01.2017
13:29:28
ну сессия не из кук берется а из редиса

Pavel
22.01.2017
13:29:49
В-третьих, я не работал с ларавелем, но вангую что там сессия может именоваться в виде хеша от домена

Иван
22.01.2017
13:29:55
редис как сторадж вместо кук видимо...

Ильдар
22.01.2017
13:29:58
все равно что если бы session driver поставить в database

Pavel
22.01.2017
13:30:07

dypa
22.01.2017
13:31:57

Ильдар
22.01.2017
13:32:06
env

Google

Ильдар
22.01.2017
13:32:22
а конгиг далее используется в session.php
################################################
# Cache, Sessions & Queue
################################################
CACHE_DRIVER=memcached
SESSION_DRIVER=redis
#QUEUE_DRIVER=sqs
REDIS_HOST=127.0.0.1
а в session.php
'driver' => env('SESSION_DRIVER', 'file'),

Pavel
22.01.2017
13:35:04
Auth:: check false
Ну задебаж вот эту функцию локально и посмотри почему она возвращает false
Также посмотри какие хедеры и кукисы посылаются при запросах к бекендовому домену
И какие к фронтендовому
id сессии должны быть одинаковые

dypa
22.01.2017
13:46:18
в homestead хоть он и !@#$% есть xdebug, отловить почему не работает не долго

Иван
22.01.2017
13:55:03
го скайп поможешь

Ильдар
22.01.2017
13:55:15
Пожалуйста

Иван
22.01.2017
13:55:17
раз не долго

Ильдар
22.01.2017
13:55:17
:)

dypa
22.01.2017
17:33:13
что за школоманеры :) я решаю проблемы других людей только за деньги ;)

Ильдар
22.01.2017
17:38:16
Ваш ник, говорит о школоманерах не менее Ивана. Но все же спасибо за хоть какой то ответ

dypa
22.01.2017
17:41:12

Ильдар
22.01.2017
17:42:07
Так как мне нужно было задеплоить некоторые правки в админке, пришлось просто на этапе перехода на поддомен dashboard получить вручную Юзверя
но все равно нужно будет разобрраться потом с этой проблемой
Помогите Даше найти затерявшуюся сессию называется :D

Pavel
22.01.2017
17:45:19
Вообще процесс поиска таких багов не детерминированный по времени и может зависеть от многих фактов. Решение может быть найдено как за 15 минут так и за сутки копания в коде и конфигурации. Поэтому естественно браться никто из здравомыслящих не рискнет.
Тебе высказали тут несколько хороших гипотез - проверяй их - смени редис на tmp файлы, отдебаж код, проверь кукисы - и найдется проблема.

dypa
22.01.2017
17:49:21
@chebotarevp смотри за 4 часа можно проверить такие гипотезы:
* redis не запущен, запущен но на не верном порту
* можно проверить что класс сессий действительно получает настроку "redis"
* не знаю как в ларе но проверить session_save_handler
* проверить сессионные куки в браузере
* проверить авторизацию в режиме инкогнито
* залезть в сам redis и проверить что таблицы/коллекции вообще существуют (есть права на запись)
* отключить сохранение сессий в редис и проверить что всё работает или не работает