Top.Mail.Ru
PHP Developer's Journal
? ?
PHP Developer's Journal [entries|friends|calendar]
PHP Developer

[ website | PHP.NET ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Как правильно писать из php в stderr? [03 Jun 2019|04:12pm]

dil
Я использую на своём веб-сайте 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, "message\n");

вроде уже работает.

Так что же не так с оригинальным fwrite(STDERR,...) ?
12 comments|post comment

Redis, странное [14 Feb 2016|12:20pm]

e_maksimov
Коллеги имеющие 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: Спасибо dil, оказывается, это redis-benchmark за собой не убирает.
2 comments|post comment

[19 Jan 2016|10:59pm]

phorror
Вот вы сидите тут, и не знаете, что в internals идут жаркие бои вокруг предполагаемого к принятию Морального кодекса строителя коммунизма.

Всегда полагал, что Феррара способен только лицом торговать, а теперь окончательно в этом убедился. Вот почему больше всего кричат те, от кого меньше всего практической пользы?
post comment

Парсер почты за деньги [24 Nov 2015|10:48am]

v_exer
Добрый день.

Имеется задачка: получить с почтового ящика письма и провернуть с каждым из них следующие действия:
1. Распарсить заголовок
2. Если письмо отправлено с определенного адреса, то:
2.1. Сохранить на диск
2.2. Получить текст (если это html-письмо в base64 - раскодировать)
2.3. Распарсить по содержимому
2.4. Выдать результат парсинга

В принципе, все по отдельности гуглится. Но времени компилировать "до кучи" совершенно нет.

Кто возьмется сделать? Бюджет - 4 килорубля.
7 comments|post comment

Различные режимы получения данных для PDO [18 Nov 2015|12:32pm]

phorror
Наконец-то дописал. Всё, что вы хотели знать о PDO::FETCH_GROUP, PDO::FETCH_UNIQUE, PDO::FETCH_KEY_PAIR, но стеснялись спросить.
4 comments|post comment

Быстрая работа с массивами или множествами [05 Nov 2015|08:56am]

zupernintendo
Есть ли какието способы ускорить работу с массивами (пересечение, объединение)?
Или может даже реализовать множества.
Массивы содержат числа. Т.е может можно как то указать - что это массив типа int чтобы ускорить.

сейчас стандартные array_intersect + array_merge дают в среднем ~0.02 с на ~10 операциях объединения/пересечения
размер массивов ~500 элементов

пока хватает и этого, но понятно что с возрастанием кол-ва элементов и операций время будет возрастать (до 100000 хотябы).

нужно решение в PHP. знаю что можно поставить redis но нет возможности (shared хостинг)
15 comments|post comment

Теоритический вопрос про mod_rewrite и WP-Redirection [29 Sep 2015|12:33am]

ujinsky
Добрый день.

Может кто-нть поделиться знанием о том, что эффективнее с точки зрения использования CPU/ОЗУ: 5000 правил в .htaccess или 5000 правил в вордпрессовском плагине "Redirection"(https://wordpress.org/plugins/redirection/)? Или этот вопрос некорректен?

Эти 5000 правил - приводят пользователей со старых ссылок в новое место.

Поможет-ли тут использование RewriteMap ? Или это не тот инструмент, который тут нужен?

Заранее спасибо.
12 comments|post comment

opcache php 5.6 и require [22 Sep 2015|11:56am]

zupernintendo
например включен 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]

zupernintendo
например я делаю колонки в 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]

ratnos
print floor(log(1000, 10)); # => 2

UPD: Норм, живём.
print floor(log10(1000)); # => 3
35 comments|post comment

Постоянная работа для php yii программера. Москва [04 May 2015|12:52pm]

ext_2256728
Постоянная работа для 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]

white_thesis
Напомните мне, пожалуйста, как 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]

uname
PHP - язык, который помог встать мне на ноги! правда.
Чуть больше десяти лет я с переменным успехом зарабатывал с его помощью. Было и по два и по году бросал все и вообще не подходил к компу)) но в итоге последние 4 года именно с помощью РНР я зарабатываю не плохие деньги, по крайней мере обеспечиваю себя с горкой.
Но, признайтесь, он ужасен.
Снова бросил.
13 comments|post comment

вакансия php-программиста на удалённую частичную занятость (8-16 часов в неделю): Yii, Umi.cms [03 Feb 2015|08:05pm]

dmarsentev
Мой родственник, владелец небольшой фирмы,
ищет php-разработчика на удалённую работу
для доработки сопутствующего проекта.
php, js, jQuery, Apache, mysql
Фреймворки Yii и UMI.cms

Помесячная оплата 17'000-20'000 руб/мес.
Проект рассчитан на год.

По всем вопросам пишите Антону на адрес
antony зверь adminprofi точка ru

PS фирма в мск, если это Вам важно

upd Извините, была ошибка в адресе, в домене: правильно adminprofi

upd2: Спасибо всем откликнувшимся. Вакансия закрыта.
post comment

Нужен нормальный хостинг [27 Jan 2015|05:06pm]

jo_greg
Около трех лет вешал сайты на локальный хостинг, а сейчас работать стал так хреново - страницы прогружаются минутами, а иногда сайт вообще провисает. Короче говоря, решил съезжать. Рейтингам в интернете не особо доверяю, так как места там элементарно покупаются, ни для кого не секрет. Так что хотелось бы послушать реальные отзывы - какой хостинг стоит выбрать.
22 comments|post comment

так GMT или UTC [18 Dec 2014|01:05am]

white_thesis
PHP 5.3.13

Такое впечатление, что PHP не знает разницы между GMT и UTC.
Unixtime базируется именно на шкале UTC, вместе с её секундой координации.
Однако же
$a = new DateTime('1992-7-1 23:59:59 UTC');
$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]

lazykot
<?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]

phorror
Вопрос на тостерре подтолкнул мою мысль, некоторое время уже работавшую в этом направлении.
И получилось у меня, что называем мы компоненты этого классического паттерна неправильно.
А правильно будет (по крайней мере, в случае с Ларавелью):

  • Модели лежат в папке Controllers, при этом используя

    • ORM из папки Models для манипуляции с данными


  • Визуальное отображение лежит в папке Views

  • Секретарша лежит в routes.php.



И тогда всё сходится! Меня как раз смутили рауты в Ларавели, которые ничтоже сумняшеся используются в виде таких мини-рулетиковконтроллеров, которые берут на себя кучу задач - вплоть до авторизации!.
И меня давно уже смущало, что во всех фреймворках моделью называется тупо маппер таблицы из БД.

А вот если в голове названия переиначить, то всё сходится:
Раут - это тот самый тонкий контроллер, о котором все время говорили большевики, но который никто не видел.
Контроллер - это та самая толстая модель, которая отвечает за бизнес-логику!
Модель - ОРМ, которым и является.
Вью остаётся на месте.

Логично?
9 comments|post comment

[07 Oct 2014|06:13am]

sontar
Перевод статьи 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]

white_thesis
Сколько-сколько это у нас секунд в году, как вы думаете?

for($y=1970; $y<2038; $y++)
{
$y1 = $y+1;
$t = strtotime("$y1-01-01 00:00:00") - strtotime("$y-01-01 00:00:00");
echo "$y - $y1 = $t s =", $t/3600/24, " d\r\n";
};

я чего-то не знаю?Collapse )
22 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]