PHP Developer's Journal (original) (raw)
Как правильно писать из php в stderr? | [03 Jun 2019|04:12pm] |
---|---|
Я использую на своём веб-сайте Wordpress с plugin'ом "LiveJournal Crossposter Remake", который копировал мои посты в LJ, а потом в DW. Но недавно он почему-то перестал это делать, хотя ни на самом сайте, ни в логах никаких ошибок не виднеется.Я решил в том скрипте приделать записи в apache'вский error_log, чтобы последить, какие функции там запускаются, и что они делают, и увидеть, какие функции там не работают.Вроде бы для записи в error_log, из PHP достаточно просто писать в STDERR:fwrite(STDERR, "message\n");В тестовом скрипте, который я вручную запускал, это вполне работало,а в том livejournal-crossposter-remake.php почему-то вовсе не сработало,в error_log'е вместо них появилась куча сообщений об ошибках в этом PHP-скрипте:[error] [client мойIP-адрес] PHP Warning: fwrite() expects parameter 1 to be resource, string given in /path-to/www/blog/wp-content/plugins/livejournal-crossposter-remake/livejournal-crossposter-remake.php on line 99и про остальные строки этого скрипта, куда я добавил такой fwrite()..Погуглил, как вручную обратиться к stderr, и добавил в начале скрипта:$STDERR=fopen('php://stderr', 'w');А в функциях вот так:global STDERR;fwrite(STDERR; fwrite(STDERR;fwrite(STDERR, "message\n");вроде уже работает.Так что же не так с оригинальным fwrite(STDERR,...) ? | |
12 comments|post comment |
Redis, странное | [14 Feb 2016|12:20pm] |
---|---|
Коллеги имеющие Redis в хозяйстве, прошу, проверьте, не имеется ли в Ваших базах следующих данных:1. Строка 'counter:__rand_int__' значением '100000'2. Строка 'key:__rand_int__' значением 'xxx'3. Список 'mylist' с 100000 записей содержащими 'xxx'Если появилось, то прошу отписать версию Redis и какой коннектор используется.Спрашиваю потом, что на доступных мне инстансах Redis таковые появились и откушали по 6.2МБ. Версии Redis от 3.0.3 до 3.0.7 под Ubuntu 12.04 и 14.04, инстансы на разных серверах и в разных сетях, в том числе без доступа к инету и в единоличном пользовании, поэтому взлом и шутки коллег исключаются. Единственное, что объединяет, кроме самого Redis и Redis-Cli - PHP-коннектор PHPRedis и вебморда phpRedisAdmin - они пока тоже под подозрением.UPD: Спасибо |
|
2 comments|post comment |
[19 Jan 2016|10:59pm] | |
---|---|
Вот вы сидите тут, и не знаете, что в internals идут жаркие бои вокруг предполагаемого к принятию Морального кодекса строителя коммунизма.Всегда полагал, что Феррара способен только лицом торговать, а теперь окончательно в этом убедился. Вот почему больше всего кричат те, от кого меньше всего практической пользы? | |
post comment |
Парсер почты за деньги | [24 Nov 2015|10:48am] |
---|---|
Добрый день.Имеется задачка: получить с почтового ящика письма и провернуть с каждым из них следующие действия:1. Распарсить заголовок2. Если письмо отправлено с определенного адреса, то:2.1. Сохранить на диск2.2. Получить текст (если это html-письмо в base64 - раскодировать)2.3. Распарсить по содержимому2.4. Выдать результат парсингаВ принципе, все по отдельности гуглится. Но времени компилировать "до кучи" совершенно нет.Кто возьмется сделать? Бюджет - 4 килорубля. | |
7 comments|post comment |
Быстрая работа с массивами или множествами | [05 Nov 2015|08:56am] |
---|---|
Есть ли какието способы ускорить работу с массивами (пересечение, объединение)?Или может даже реализовать множества.Массивы содержат числа. Т.е может можно как то указать - что это массив типа int чтобы ускорить.сейчас стандартные array_intersect + array_merge дают в среднем ~0.02 с на ~10 операциях объединения/пересеченияразмер массивов ~500 элементовпока хватает и этого, но понятно что с возрастанием кол-ва элементов и операций время будет возрастать (до 100000 хотябы).нужно решение в PHP. знаю что можно поставить redis но нет возможности (shared хостинг) | |
15 comments|post comment |
opcache php 5.6 и require | [22 Sep 2015|11:56am] |
---|---|
например включен opcacheя подключаю require 'some-file.php';эти данные закешируется пока файл не поменялся или будет каждый раз парсить и подгружать?$cache = require 'cache/key1.php';во второй раз берется из кеша?$cache = require 'cache/key1.php';насколько эффективный такой способ использования opcache в качестве кеша для храения какито результатов.или надо явно использовать функции opcache ? | |
6 comments|post comment |
поиск по характеристикам - zend-search-lucene vs mysql plain | [01 Jun 2015|08:06pm] |
---|---|
например я делаю колонки в mysql 100 штук (чтб на все случаи) - 1 плоская таблицапихаю туда характеристики товаров.помогут ли тут еще индексы когда много колонок?и делаю обычный sql запрос prop1 = 'x' and prop2 = 'y' и т.дили юзаю этот чудо движок на php и создаю индексы их товаров. тут естественно колонок не 100 а только какие нужны.кто трогал zend-search-lucene, оно будет лучше вышеописанной структуры mysql?ставить другие движки типа solr и прочее нет возможности на проект. только php mysql... | |
6 comments|post comment |
[14 May 2015|06:32pm] | |
---|---|
print floor(log(1000, 10)); # => 2UPD: Норм, живём.print floor(log10(1000)); # => 3 | |
35 comments|post comment |
Постоянная работа для php yii программера. Москва | [04 May 2015|12:52pm] |
---|---|
Постоянная работа для php yii программера. Москваphp программист для работы в офисе.Обязанности:Поддержка и развитие существующих проектов;Разработка новых проектов.Требования:Уверенное знание Yii, PHP, MySQL;Навык работы в консоли *nix систем;Опыт написания систем, работающих под нагрузкой;Понимание общих архитектурных принципов и шаблонов проектирования;Опыт использования любой системы контроля версий (SVN, GIT и т.д.).Неоспоримыми плюсами будутЗнание MongoDB, Node.js, PDO, SPL, Yii2, JavaScript, jQuery, SQLУсловия:Восьмичасовой рабочий день, 5-дневная рабочая неделя;Современный офис в центре Москвы (метро Тверская, Пушкинская, Чеховская), молодой дружный коллектив;Посещение фитнес рядом с работой, возможность повышения квалификации;Зарплата (обсуждается индивидуально с каждым на собеседовании).Для заинтересовавшихся:Имеется техническое задание. | |
post comment |
timezone | [28 Mar 2015|08:40pm] |
---|---|
Напомните мне, пожалуйста, как php из состава денвера объяснить, что летнего времени больше нет? Менять название часового пояса не хочется, т.к. есть привычка использовать формат "дата время msk".Как я понял timezonedb у него внутренняя, а не отдельной .dll, т.е. обновить ему базу часовых поясов просто так не удастся.Старый фокус с set TZ=EST+3EDT0 не помог. http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html | |
6 comments|post comment |
[25 Feb 2015|10:04pm] | |
---|---|
PHP - язык, который помог встать мне на ноги! правда. Чуть больше десяти лет я с переменным успехом зарабатывал с его помощью. Было и по два и по году бросал все и вообще не подходил к компу)) но в итоге последние 4 года именно с помощью РНР я зарабатываю не плохие деньги, по крайней мере обеспечиваю себя с горкой. Но, признайтесь, он ужасен. Снова бросил. | |
13 comments|post comment |
вакансия php-программиста на удалённую частичную занятость (8-16 часов в неделю): Yii, Umi.cms | [03 Feb 2015|08:05pm] |
---|---|
Мой родственник, владелец небольшой фирмы,ищет php-разработчика на удалённую работудля доработки сопутствующего проекта.php, js, jQuery, Apache, mysqlФреймворки Yii и UMI.cmsПомесячная оплата 17'000-20'000 руб/мес.Проект рассчитан на год.По всем вопросам пишите Антону на адресantony зверь adminprofi точка ruPS фирма в мск, если это Вам важноupd Извините, была ошибка в адресе, в домене: правильно adminprofi upd2: Спасибо всем откликнувшимся. Вакансия закрыта. | |
post comment |
так GMT или UTC | [18 Dec 2014|01:05am] |
---|---|
PHP 5.3.13Такое впечатление, что PHP не знает разницы между GMT и UTC.Unixtime базируется именно на шкале UTC, вместе с её секундой координации.Однако же a=newDateTime(′1992−7−123:59:59UTC′);a = new DateTime('1992-7-1 23:59:59 UTC');a=newDateTime(′1992−7−123:59:59UTC′);b = new DateTime('1992-7-2 00:00:00 UTC');print_r($a->diff($b));Дает ответ 1 секунда, хотя правильный ответ - 2 секунды, ибо между ними еще "1992-7-1 23:59:60 UTC"На самом деле расклад такой UTCUnixtimeGMT примерно 1992-7-1 23:59:587100351981992-7-1 23:59:57.55 1992-7-1 23:59:597100351991992-7-1 23:59:58.55 1992-7-1 23:59:607100352001992-7-1 23:59:59.55 1992-7-2 00:00:007100352001992-7-2 00:00:00.55 1992-7-2 00:00:017100352011992-7-2 00:00:01.55 У кого-нибудь установлен 5.4 или старше? Проверьте у себя pls. | |
5 comments|post comment |
Неожиданно 502.2 | [09 Nov 2014|01:18am] |
---|---|
<?retrieveData;rename("","");Этот скрипт при выполнении на PHP 5.6.2 (x64 NTS через CGI) на IIS 7 приводит у меня к 502.2, т.е. на нем фактически падает php-cgi.exe.Если в retrieveData или rename изменить хотя бы один символ - работает как надо, т.е. выдает 500 Server ErrorТот же самый скрипт на том же самом PHP но в Apache 2.4 (mod-cgi) работает без проблем (500).Проверьте на своих конфигурациях, результат пишите сюда - интересно выяснить в чем дело. | |
21 comments|post comment |
Правильное наименование компонентов MVC в РНР фреймворках | [23 Oct 2014|06:47pm] |
---|---|
Вопрос на тостерре подтолкнул мою мысль, некоторое время уже работавшую в этом направлении.И получилось у меня, что называем мы компоненты этого классического паттерна неправильно.А правильно будет (по крайней мере, в случае с Ларавелью): Модели лежат в папке Controllers, при этом используя ORM из папки Models для манипуляции с данными Визуальное отображение лежит в папке Views Секретарша лежит в routes.php. И тогда всё сходится! Меня как раз смутили рауты в Ларавели, которые ничтоже сумняшеся используются в виде таких мини- |
|
9 comments|post comment |
[07 Oct 2014|06:13am] | |
---|---|
Перевод статьи A possible future to PHP Франка КарличекаВозможное будущее PHPСогласно последней статистике, ownClowd – один из крупнейших опенсорсных проектов, написанных на PHP. Как многие из вас знают, PHP использован для серверной части ownCloud. Мы использовали другие технологии, такие как C++ и Qt для десктопных клиентов, Java для андроид-приложений и Objective-C для iOS-приложений, JS для веб-интерфейсов и т.д. Но сердце ownCloud – серверная компонента, использующая PHP 5.3 и выше.Было несколько причин для выбора PHP:( Read more...Collapse ) | |
47 comments|post comment |
strtotime | [08 Sep 2014|05:07am] |
---|---|
Сколько-сколько это у нас секунд в году, как вы думаете?for($y=1970; y<2038;y<2038; y<2038;y++){ y1=y1 = y1=y+1; t=strtotime("t = strtotime("t=strtotime("y1-01-01 00:00:00") - strtotime("$y-01-01 00:00:00"); echo "$y - y1=y1 = y1=t s =", $t/3600/24, " d\r\n";};( я чего-то не знаю?Collapse ) | |
22 comments|post comment |
Переопределить или добавить любой метод класса в PHP без runkit и т.п. расширений | [20 Aug 2014|11:58am] |
---|---|
- Как без изменения исходного кода переопределить метод в PHP стандартными средствами? Реально?Короче что-то типа микшенов. Динамически изменяем класс (не созданный объект).- можно ли навесить на new SomeClass() какойто обработчик чтобы дополнительно менять состояние объекта ( инициализировать свойства)- В трейтах мы задаем статически: use Pprint; А есть ли другой способ чтобы типа: add_trait('SomeClass', 'TraitName') ?UPD:пока видел способы: - отлов до загрузки кода класса и модификация потом eval- отлов до загрузки кода класса и модификация в какойто временный файл и include (как я понял Go AOP использует этот принцип только файлы в стримах а не реальные?) | |
15 comments|post comment |
navigation | |
---|---|
[ viewing | most recent entries ] [ go | earlier ] |