Задать вопрос
Ответы пользователя по тегу PHP
  • Как разместить одну страницу сайта на другом сервере?

    @rozhik
    Да, для этого есть несколько способов.
    1. редирект (При первом способе в браузере будет видна урл второго сервера, наверное не то, что Вам нужно)
    2. проксирование (первый сервер обратится к второму, и отдаст контент клиенту)
    В зависимости от вэб сервера реализации различные. Я вижу в теге nginx, по этому для него
    server { ...
        location test.html {
             proxy_pass http://backend;
      }
    }
    upstream backend {
       server http://10.0.0.2
    }
    Ответ написан
    1 комментарий
  • Nginx и PHP, как перенастроить с Apache?

    @rozhik
    1 глупый ответ
    rpm -e apache2
    rpm -1 nginx

    2. ответ по умнее. (если Вам нужны оба) В конфиге авача найдите listen: *:80 и поменяйте на 8080
    После этого они перестанут конфликтовать за порты
    Ответ написан
    1 комментарий
  • Как по клику на определенную ссылку открыть popup-окно, в котором должен начать проигрываться mp3-файл?

    @rozhik
    В этом решении больше проблем советы:
    1) ползунок сможет работать только в HTTP/1.1+. Соответственно с PHP Вы контент выдать не сможете (нормально) . Поставьте спереди nginx, и не морочте себе голову. Или стримайте инструментами для стриминга.
    2) проигрывайте аудио через javascript || flash. (если уже - опишите как у Вас получилось поиметь подобные проблемы)

    На первый вопрос не достаточно данных для ответа. В других местах всё работает а фаербаг никто не отменял.
    Уточните задачку. (недавно другу в похожем помогал, связанное свежо в памяти)
    Ответ написан
    1 комментарий
  • В чём преимущество асинхронных серверов перед PHP/nginx?

    @rozhik

    Такой вопрос: в чем основное преимущество асинхронных серверов ... перед связкой асинхронный сервер + любой язык
    ---
    перед связкой асинхронный сервер + любой язык - не совсем понятно, что Вы имеете в виду. Асинхронный сервер или нет, это одно, а вот асинхронный или нет доступ к данным у ЯП - это совсем другое. Я уверен, что Вас больше интересует второе.

    Вся прелесть, сложность и проблемы в асинхронном подходе возникают по одной и той-же причине. Результат на запрос приходит не сразу, а асинхронно. Это даёт огромное уменьшение времени отклика программы, если в ней используется результат нескольких не зависимых IO операций. Во всех остальных случаях синхронный подход проще, при таком-же времени доставки ответа. (IO - это работа с файлами, внешними api итп )

    Nodejs имеет один существенный недостаток - у неё один процесс выполнения. По этому тяжелые вычисления на ней значительно уступают в производительности PHP на многопроцессорных/ядерных системах. (это дело легко обходится воркерами итп, но это еще один недостаток)
    erlang, java и несколько других языков не имеют вышеуказанной проблемы.

    Nodejs по сравнению с PHP имеет еще 2 важных плюса:
    1. в ноде можно хранить данные, таймеры, дескрипторы итп между запросами. По этому это намного эффективнее различных механизмов кэширования PHP.
    2. в ноде не тратится время на подгрузку кода.

    >>В асинхронном сервере в единый момент времени обрабатывается столько запросов, сколько есть воркеров и в PHP/nginx точно также.
    Не верно, ни в первом ни во втором случае. В асинхронном сервере есть всего один поток, который обрабатывает любое количество запросов, в nginx - точно так-же. О PHP - другая история, но на каждый запрос нужен как минимум thread или process.

    Ответ написан
    1 комментарий
  • Распределенное хранилище изображений

    @rozhik
    Я хочу предложить следующий вариант.

    Идея:
    0 опционально — поиск на локальной ФС
    1 создаётся хэш-функция от пути к картинке, возвращающая целое число. hashVal
    2. выбирается фронт сервер с номером hashVal % serversCount, и если он живой — стягивается картинка с этого сервера. если её нет — то генерится.
    3. если сервер не живой — берем следующий.и переходим к пункту 2.

    На практике такое решение ущербно по причине того, что после выхода из строя сервера — следующий сервер становится перегружен.
    В живом проэкте используется модификация:
    Есть 1000 записей в мэмкеше. Инициированых значениями из пункта 2. После падения фронт сервера его индексы меняются на индексы живых серверов случайным образом. После поднятия — восстанавливаются.
    (на самом деле чуть сложнее, так как каждая картинка живет всегда на 3х серверах, и доступ к ним балансируется каруселью, но это не важно для этого вопроса)
    Ответ написан
    Комментировать
  • Подскажите движок сайта, с которым в комплекте идет приложение под android

    @rozhik
    SaaS www.markus-falk.com/mobile-frameworks-comparison-chart/
    По поводу движков — для всех современных и популярных есть свои клиенты (различной кривоватости)
    Ответ написан
    Комментировать
  • Несколько вопросов к толковым разработчикам относительно mvc и php?

    @rozhik
    В данный момент Вы переливаете из пустого в порожнее (простите).
    Хочу прийти к MVC… web-разработчики искажают классическую модель MVC — не зря искажают, в классически-чистом виде она не подходит для вэб. Вместо нее используют модификации. Которые, как правило отличаются пониманием того, что не есть model и не есть view.
    Перед тем как рефакторить — нужно поставить цели рефакторинга к примеру (простота расширения, производительность… ), а уж после этого смотреть на
    паттерны итп (но ни как не наоборот). У меня сложилось впечатление, что это рефакторинг ради рефакторинга, и красивого слова MVC. Я вам их еще красивым много назову: MVVP, ORM, Observer…
    То что Вы описываете имеет право на жизнь, но оно разнородно, и разностильно. По этому я очень рекомендовал бы перед тем как писать, определить всё таки цели, и дополнить ими вопрос. Мне почему-то кажется, что ответ Вы найдете на вопросы при их написании.
    Ответ написан
    3 комментария
  • Как изучить/разобраться в чужом PHP коде?

    @rozhik
    Средств статистического анализа толковых для PHP просто нет. Да и теоретически не во всех случаях это возможно.

    Для похожей задачи на PHP3 г;%:?*коде я сделал следующую поделку:
    Используя Tokenizer Залил 2 таблички:
    functions: id, className, funcName, fileDef, lineDef
    ussage: functionsID, calledFunctionsId
    inherit: parentClassName, chieldClassName

    После этого с помощью простых SQL мне стало легко искать где и что вызывается.

    Поделка решала свою узкую задачу, по этому код её не публиковал. Кому интересно — может сделать толковую.
    Ответ написан
    Комментировать
  • Особенность функций htmlspecialchars и htmlentities

    @rozhik
    Причина — часто встречающаяся. Старый IE не показывал &-apos-;
    Ответ написан
    1 комментарий
  • Использование тернарного оператора ?: с подавлением ошибки?

    @rozhik
    Это $c = @$a?: 'default'; и $c = isset($a)? $a: 'default'; разный код. Посмотрите разницу на 0, '', "\0", false и еще много чем, которое преобразуется в boolean FALSE. По этому нотис вполне верен, учитывая, что на разных версиях PHP будет работать по разному.
    Ответ написан
    1 комментарий
  • Реально ли определять по ip адрес с точностью до района города (Москва)?

    @rozhik
    У гугла есть очень точная, но к сожалению не публичная база. В google maps api v2 можно получить точную координату (если у вас есть ключ), либо через v3, но в ней нужно поизголятся, так как в лоб координату пользователя не дают.
    О альтернативных сравнимых бзах не слышал. GeoIP не предоставляет достаточно данных.
    Ответ написан
    4 комментария
  • PHP скрипт с огромным временем выполнения — как правильно такое писать?

    @rozhik
    SAX парсер будет работать намного более экономно к памяти, и скорее всего много быстрее.
    Ответ написан
    Комментировать
  • Node.js для простых сайтов. Стоит ли забивать на PHP?

    @rozhik
    Я рекомендовал бы использовать и одно и другое.
    Поставить спереди nginx, который форвардит запросы PHP + node и отдаёт статику (это решение лишь незначительно нагружает сервер, но если у Вас хотя бы 10% статики — то только выиграете). В дальнейшем писать на чем удобнее для конкретной задачи. К примеру у меня nginx который форвардит к erlang, node, php.
    Ответ написан
    Комментировать