Ответы пользователя по тегу PHP
  • На чем писать веб-сервис?

    seriyPS
    @seriyPS
    В случае Python могу посоветовать www.django-rest-framework.org - кода много писать не нужно, особенно в простых случаях.
    Ну и доступ к куче питоновских библиотек.
    OAuth через psa.matiasaguirre.net
    Ответ написан
    Комментировать
  • Как быстрее выбрать изображения из БД (mysql php)?

    seriyPS
    @seriyPS
    Правильно понял, что вам нужно вывести на странице несколько лотов с картинками?
    Храните в 2-х таблицах и выбирайте 2-мя запросами, 2-й с id IN (...).
    В postgresql могли бы использовать array_agg + JOIN и выбирать всё одним запросом. Но тут тоже лучше бенчмаркать что лучше - 2 запроса или один, но с JOIN и аггрегацией.
    Ответ написан
    Комментировать
  • Возможно ли, используя личный хостинг реализовать свободный доступ к сайту, защищенному по ip?

    seriyPS
    @seriyPS
    Самое правильное - настроить VPN (openvpn или l2tp).

    Вариант попроще - сделать "зеркальный прокси" на Nginx например:
    server {
        server_name mirror.mydomain.com;
    
        location / {
            proxy_pass http://proxied-site.com;
            proxy_set_header Host       $proxy_host;
        }
    }

    Но абсолютные ссылки работать не будут, так что не советую.

    Можно попробовать т.н. CGI proxy типа www.glype.com но это, опять же, "полурабочий VPN для тех, кто не осилил"
    Ответ написан
  • Как сделать post запрос xml?

    seriyPS
    @seriyPS
    Не слушайте тех, кто говорит что поле в POST не может быть безымянным. Это не правда.

    $body_text = '<ApiRequest xmlns:xsi="ht'
    ...
    curl_setopt($ch, CURLOPT_POSTFIELDS,     $body_text); 
    
    Ответ написан
    Комментировать
  • Демон на PHP — как извне менять параметры?

    seriyPS
    @seriyPS
    Очень как то вы запутанно все описали, я толком не понял. Вконтактовский мессенджер чтоли парсите?
    Как конкретно в PHP не скажу, но обычные подходы такие:
    Если параметры меняются НЕ часто, то их записывают в конфиг-файл и посылают демону UNIX-сигнал, например sighup:
    kill SIGHUP
    Демон должен установить обработчик этого сигнала - при получении сигнала перечитывать конфиг.

    Если меняются часто, то помимо самого "рабочего" сокета, который ждет этот long-pool запрос, открывают еще один - контрольный сокет (слущающий ru.php.net/manual/en/function.socket-listen.php) на котором ждут появления команд/новых параметров. Он может слушать локальный TCP/UDP порт или UNIX сокет, а то и pipe. Правда тогда появляется проблема, что нужно контролировать сразу 2 сокета - тут уже нужны потоки или select/epool.

    Ну и третий вариант - просто периодически опрашивать БД/перечитывать конф-файл, например после окончания long-pool запроса или по sleep() если запросов нет. Но это уже детский сад))
    Ответ написан
  • Замена по регулярному выражению с поиском по частям строки?

    seriyPS
    @seriyPS
    Вообще очень подозрительный вопрос. Вы точно уверены что оно вам надо? Мне кажется что нет)

    Но если даже уверены — сами поглядите. Вам предлагают регулярку /(FROM|UPDATE|ALTER)\s+{([\w\d_]+)\}/iU а вы приводите ломающий ее пример UPDATE {table} SET `text`="пример запроса: SELECT * FROM {table}"… При том, что запросы, включающие в себя данные, уже года 4 как нормальные люди не используют. Есть же плейсхолдеры (в похапе их поддерживает как минимум PDO). Т.е. будете писать UPDATE {table} SET `text`=:text WHERE id IN( SELECT id FROM {other_table}), проводить все ваши замечательные замены и потом уже средствами PDO биндить данные к запросу.

    Если такой подход чем-то не устраивает, нужно еще раз хорошенько задуматься. Если не помогло — то тогда делайте какие-то более уникальные метки для выделения имен таблиц в стиле SELECT * FROM {#$table$#}. Ну и крайний случай — пишите полноценный парсер SQL по всяким BNF правилам. Хотя тогда скорее всего просто зря потеряете кучу времени.
    Ответ написан
    1 комментарий
  • Требуется помощь сисадмина. Проблема с обновлением libxml для php?

    seriyPS
    @seriyPS
    Ооо… а я как то пытался libxml для python2.6 на CentOS поставить — так и не удалось. CentOS он вообще такой, новые версии софта хрен поставишь. (Конструктивного ничего не посоветовал, да)
    Ответ написан
    1 комментарий
  • Проблема связи php и python через memcached?

    seriyPS
    @seriyPS
    Видимо придется залезть вам в исходники питоньего клиента и почикать там все что связано с флагами. Во флагах (768 и 300 например) клиенты сохраняют информацию о том, в каком виде они закодировали (сериализовали) данные. см github.com/memcached/memcached/blob/master/doc/protocol.txt#L155
    В вашем случае VALUE mfd.php_nexttime 768 10 флаг это 768 а 10 — длина ответа (10 байт). Только не совсем понял почему у вас для одного и того же ключа разные флаги (ведь там оба раза одно и то же значение было??)

    Если вы на обоих концах (php-python) будете использовать одинаковые методы сериализации, посмотрите какими флагами помечает их PHP клиент и подмените в Python клиенте на аналогичные или используйте текстовый флаг по умолчанию. Конкретнее вряд ли подскажу т.к. там уже просто надо в коде ковыряться и править. (см функцию _recv_value(self, server, flags, rlen) в исходниках клиента, можете написать val = buf как вариант для
    else:
                val = buf#вот так!!
                self.debuglog("unknown flags on get: %x\n" % flags)
    )
    Ответ написан
  • Проблема связи php и python через memcached?

    seriyPS
    @seriyPS
    Погулял по коду библиотеки… Попробуйте сначала сделать memcache.debug=True и посмотреть что оно в stderr пишет.
    Ответ написан
  • Какой шаблонизатор взять для нового проекта на php?

    seriyPS
    @seriyPS
    XSLT советую. Для него можно XML-ку собрать каким нить SimpleXML — очень удобно. Каждый модуль проекта может в один и тот же объект SimpleXML вставлять свои данные а потом XSLT уже выбирает то, что ему нужно.

    Из плюсов — хорошо переносится между языками (если вдруг понадобится), можно с помощью тех — же XSLT попробовать реализовать REST API. Да просто довольно правильный стиль навязывает при создании шаблонов. Опять же, для NGINX есть модули для XSL трансформации внутри него (хотя смысла делать шаблонизацию внутри легкого асинхронного веб-сервера я лично не вижу)

    Если умудриться распарсенные шаблоны каким-то образом сохранять в памяти между запросами (на PHP трудно реализуемо пожалуй) то вообще летать будет.
    Ответ написан
  • Средства определения города в PHP по ip посетителя сайта?

    seriyPS
    @seriyPS
    Через базу GeoIP конечно же. Баз куча существует. Платные и бесплатные.
    Ответ написан
    Комментировать
  • Оставлять логику PHP или отдавать JavaScript'у?

    seriyPS
    @seriyPS
    А тизерный блок не в Iframe отображается? Ай нехорошо(((((
    Ответ написан
    4 комментария
  • Freebsd + php-fpm?

    seriyPS
    @seriyPS
    Вряд-ли есть хоть какая то ощутимая разница. С какой ОС больше знакомы и какую лучше умеете тюнить, ту и ставьте. Тут важнее повыкидывать лишние расширения PHP, точно подрегулировать кол-во процессов php-fpm решить будет это работать через биндинг к порту или UNIX сокеты и т.п.
    Ответ написан
    Комментировать
  • Почему FastCGI+Nginx не видят настроек PHP?

    seriyPS
    @seriyPS
    У вас в clio.su/test.php в самом начале Loaded Configuration File - (none). В вашем случае, судя по тому что и там и там опция Configuration File (php.ini) Path - /usr/local/etc то fastcgi процессу не хватает прав на чтение файла /usr/local/etc/php.ini

    Стоит еще учесть, в зависимости от ОС. В Ubuntu например отдельные конфиги PHP для запуска из под Apache, Cli и CGI. т.е. в папке /etc/php5/ есть подпапки cli/ apache/ cgi/ в каждой свой php.ini и загружается соответственно из той папки, каким образом запускаем php
    Вообще причем здесь апач не понял.
    Ответ написан
    Комментировать