to post messages and comments.

Недавно стрельнула мысль что Web это по большей части полиграфия и что оно уменьшило сакральность нашей жизни (из–за низведения это самой полиграфии к подобию постоянно обновляющейся ленты с однотипной вёрсткой). WWW это некий каталог (поддерживаймый со всех сторон костылями) интерактивных журналов, рекламных буклетов, каталогов с товарами; каталогов с видео и аудио; почти что бесплатная рекламная площадка для тех кто желает заявить о себе. Народ пытается заработать на показе рекламы, наёбе населения и продаже чего–нибудь. Если раньше всё это говно было во врезках на страницах журналов и газет, то теперь оно прямо в наших ЭОМ и усердно грузит ЦП и кушает електричество. Типичный сайт это серверный скрипт с функциоанльностью инфузории и адок технологий каменного века ИТ на стороне клиента. Не зря большая часть работы по созданию сайтов занимает вёрстка и создание красивостей а PHP это в основном системы управления содержимым. Типичный выход в WWW типичного пользователя WWW это как поход в библиотеку, газетный киоск. Хотя, скорее всего, для большинства нынешних пользователей всё свелось к YouTube заменившему жвачку по телевизору, просмотру кинопродукции, Вкундахту и какому–нибудь viber. Выпусти более–менее популярные сайты типа Вкундахта программы для Окон, все бы только спасибо сказали. Идиоты тратят свою ничкчёмную жизнь активно создавая корпоративную (и не только) хуиту используя вэбную парашу вместо более вменяемых средств типа .NET (которое скорее всего и создавалось с прицелом на эту самую корпоративную хуиту).

Проблемка с AJAX. Очень нужна помощь.

Есть такой вот кредитный калькулятор: lakaz.ru
Архив тут: lakaz.ru
Когда все файлы его в одной папке, он замечательно работает. Я хочу его интегрировать в DLE, там файл, отвечающий за AJAX в целях безопасности должен находится в специальной папке. Так вот, когда я этот файл переношу в отдельную папку — перестает скрипт работать.

Вот тут можно посмотреть: lakaz.ru Идет обращение к файлу lakaz.ru и сервер выдает 500 ошибку.

Что-то делаю не так, но что, понять не могу. Буду рад любой помощи. Спасибо

Есть ORM на PHP под названием RedBeanPHP. Есть у неё функция find которая возвращает массив, но массив не простой а массив с индексами которые являются значениями полей id из таблицы в БД (игдексы не 0, 1, 2, 3 и т.д. а 9, 8, 12, 100)! Очен удобно.

Чувак хотел ответственного похапешника, но вчера пропало электричество, потом доступ в Интернет, позже оказалось что Netbeans не полностью загрузил сайт почему–то не скачав содержимое одного каталога.

PHP

есть скрипт для объединения БД, который колотит на строки 1.txt с содержимым вида
0001.jpg|бла
0002.jpg|блабла
и 2.txt с
0001.jpg|кусь
0002.jpg|куськусь
оббегает через foreach в foreach, попутно рвя на две части по | и если 0001.jpg == 0001.jpg то 2.txt[ключ] = trim(0001.jpg)."|".trim(бла)."|".trim(кусь), то есть в памяти вместо массива 2.txt собирается модификат, который пишется в 3.txt

проблема. пока в обоих исходниках одинаковое число строк — всё нормально, но если в 1.txt не хватает строк, то в 3.txt следом за недозаполненной строчкой появляется пустая строка. где-то, может, это и удобно, чтоб видеть недозаполненную строку, но меня мучает творческий вопрос — как бы убить перенос? preg_replace ("/\n|\r/","",тримка) не помогает. повторный вызов preg_replace тоже ничего не дал, из чего я понял, что preg_replace бесполезен в любых количествах. сделать итоговому файлу preg_replace на "(/\n|\r/){2,}","\n" и не париться?

Кстати, программисты есть? Посоветуйте мне the best way. Есть некий сайт, на котором примерно раз в час (от 10 минут до часа) происходит некое событие и страница перегружается. После этого события надо прореагировать, скажем нажать появившуюся кнопку. В данный момент я решил это простым плагином для браузера. Но держать постоянно включенный комп не охота.

Есть такая мысль: на бесплатном хостинге установить PhantomJS и вместо плагина написать скрипт с аналогичным функционалом. Но непонятно как обеспечить непрерывность работы. Допустим есть php скрипт, который будет запускать фантом, который и будет выполнять действие. Но действие должно быть выполнено только после события. И как узнать произошло оно или нет? Постоянно мониторить сайт? А может вообще есть способы лучше, без этого гемора?

Узнал из комментария к описанию SplFileObject (The SplFileObject class offers an object oriented interface for a file.) что
Note that this class has a private (and thus, not documented) property that holds the file pointer. Combine this with the fact that there is no method to close the file handle, and you get into situations where you are not able to delete the file with unlink(), etc., because an SplFileObject still has a handle open.
Для закрытия файла нужно присвоить переменной содержащей объект NULL. Метода close() не напрограммировали.

маленький ребрендинг. хотя со смартфона пока ещё тяжеловато, логотип в экран лезет из-за position: absolute;, но хотя бы боковое меню не мешается со старта страницы. убрал социалкнопки, основная загрузка страницы ускорилась с 12 до 4,5 секунд вне кэша. с менюшкой было около 30. подумываю ещё и счётчик яндекса убрать, 2,2 секунды будет

PHP

Вот, что значит, много лет писать большую систему. Сейчас решил переиначить древний часть древнего околопроцедурного кода на объектный, с цепочками вызовов. Программирую сверху вниз, написал каркас, обработку данных и в конце — запись результата цепочкой объектных вызовов. Запускаю, чтобы посмотреть как обработка пройдёт, ожидая получение ошибки отсутствующих методов на последнем вызове. Опаньки, код проходит и работает. Оказывается, я когда-то давно этот код/объекты написал и с именно таким набором методов :D

Недавно увидел, как коллега расставляет скобки вокруг умножения и потом суммирует эти произведения. А от умножения на 1 меня передернуло. Код писал чел с питоновским бэкгранудом, может в нем там есть какие-то чудесатые правила и нет приоритета операций?

Небольшое обновление теста объектного Фибоначчи: github.com

* Добавил JavaScript. Результат отличный — 2.64 сек. Почти как у Dart'а, лучше, чем у D. Похоже, сегодня это самый быстрый скриптовый язык.

Обновил:

* PHP до 7.1.0. Стал чуть-чуть быстрее, 50.6 против 58.0 у t.0.13

* HHVM практически не изменился. 24.5 против 25.0

* Python до 3.5.2 и 2.7.12. Удивительно, но он стал ещё медленнее — 170 и 153 сек. против прежних 145/129.

Не знаю как, но вчера мой сайт взломали и напихали всякой фигни, сменил все логины/пароли, обновил движок и PHP до 7й версии.

Хотя, меня терзают смутные сомнения что взломали не через движок а через дуру у хостера.

Вот интересно.
— Основная моя деятельность в работе/собственных проектах/etc — программирование на PHP.
— Я общаюсь на огромном числе разных форумов и социальных сетей по самым разным тематикам. И по программированию в том числе.
— Но я никогда почти не общаюсь на форумах PHP-шников.

Вот, реально, последний раз вылезал летом 2015-го. С одним сообщением на всех форумах (хотел обсудить какой-то вопрос). Перед этим — ещё где-то за год до того...

И, вот, вчера, год спустя, опять на 4 популярных форума тему мне интересную поднял. Результат обескураживает. В каждом сообщении сквозит какое-то самомнение, завышенное ЧСВ и при этом половина сообщений вообще не по теме, как будто авторы вообще не читают текст, а пишут из какого-то своего мира китайской комнаты, реагирующей на ключевые слова.

Пользы — полный ноль. Настроения от общения — никакого. Танцпольный срач на ЛОРе и то на порядок приятнее :) И так — на всех форумах, блин.

Это я какой-то не такой или остальные PHP-шники какие-то не такие? :D

У одного из заказчиков на очередном сервере какая–то суперновая Ubuntu оказалась, с PHP7 вместо нормального PHP5. Выбрасывает 500 при попытке указать Content-Type для M3U. error_handling(E_ALL) не помог. Content-Type: text/plain или application/pdf при этом такой негативной реакции не вызывают. node.js там тоже какой–то весёлый оказался, в нём коды errno поменялись, и все наши скрипты сломались нафиг, и модуль request тоже. Только с Адой проблем не было.

Попалось очень интересное решение, которое процентов на 80 пересекается с моими идеями и разработками:

getgrav.org

— CMS базируется на плоских файлах в Markdown формате (для ускорения опционально возможно кеширование «поверх»).
— Хотя наличествуют и традиционные способы установки, рулит реализация всего на Composer.
— Большое количество плагинов и тем (Twig).
— Запускается в базовом варианте сразу, без всякого конфигурирования.
— Есть свой пакетный менеджер для расширений/тем.
— Расширения/темы можно ставить через админку (хотя первый раз она ставится отдельным пакетом).
— Мультисайты, многоязыковость, ЧПУ, роутинг, редиректы
— Система пользователей и прав (хотя не разбирался, есть ли возможность коллективной работы).
— Контент может браться из Git, SVN, Dropbox и других. В т.ч., например, текст страниц может быть прямо на GitHub.

Моя идея «поправил файл дома, он через SparkleShare автоматом ушёл на GitHub, GitHub дёрнул сайт и вот страница уже на сайте», т.е. «правлю Markdown-файл дома в файловой системе — обновляется удалённый сайт» тут, кажется, уже работает.

Забавно, что формат метаданных в Markdown практически совпадает с моим :) Т.е. большинство моих тестовых страничек в этой CMS будут работать как есть.

Небольшие нестыковки с моей системой по структуре имён файлов, расположению картинок и т.п. У меня логичнее :)

Надо будет подумать. То ли эту CMS как есть на мои новые сайты ставить, то ли просто в роли бэкенда/миддлэнда (админка, редактор файлов, благо, он хорошо сделан, а фронт уже мой). В любом случае система заслуживает внимания :)

Поиск подстроки в юникодной строке в PHP без учёта регистра через preg_match() с модификаторами "/ui" в 7.5 раз быстрее, чем через mb_stripos(). В одном скрипте тут профилировал, 19.5 тыс. проверок. Так время работы — 0.31 сек. против 2.3 сек :)

Нужна помощь знающих людей по си. Есть php расширение
github.com
оно преобразует массив в dom-документ. Но иногда вылетает "recursion detected", см строку 196. И я не знаю почему это могло бы происходить.
Тут может ещё скил в php расширениях нужен.