Ответы пользователя по тегу PHP
  • Trailing slash и единая точка входа в PHP

    Wott
    @Wott
    они и будут работать одновременно, только без слеша будет редиректиться, а уже со слешем направляться на index.php
    Ответ написан
    3 комментария
  • Как вы пришли в PHP ?

    Wott
    @Wott
    что касается скриптовых языков я большую часть жизни писал на перле, собственно тогда php только появился и без слез смотреть на него было нельзя. Потом как-то отошел от web в enterprise и там накушался jsp, но после довольно продолжительного перерыва жена попросила сваять магазинчик и краткий обзор показал достаточно развитый php, в сравнении с недоразвитым тогда python и ruby ( это сейчас они как минимум конкуренты ) ну и понеслась.
    После встал вопрос об уходе с работы и последующем обломе с обещанными местами в кризис осенью 2008. Семью кормить надо было и я не думая особо полез на биржы и все еще фрилансю с тех пор.

    Собственно ни один из используемых мною в работе языков я не изучал ни в школе ни в универе ( кажется нам тогда преподавали паскаль и фортран и что-то было на с в юнуксах, а мы самостоятельно читали дохлого страуса ) ни позже ( ну и зачем идти на какие-то дебильные курсы, если писать на любом языке начинаешь через полчаса, а в полной мере овладеть все равно надо полгода-год усиленной работы на нем ). А вру — я учился на курсах chill — это какой-то гибридный процедурный язык применяемый в телекоммуникационном оборудовании, но там большей частью давали саму систему, а язык давали походя.
    Ответ написан
    2 комментария
  • Архитектура веб-приложения?

    Wott
    @Wott
    не совсем понятно зачем нужен имено JSON POST если все параметры умещаются в URI, то есть обьектов нет или сериализация примитивная. Я бы просто сделал GET и POST.

    Единообразие GET и POST делать через $_REQUEST, ежели все таки JSON POST то просто $_GET поэлементно запизиваем в обьект, как если бы он был из JSON POST, и дальше его парсим.

    Похоже про кэширование не совсем корректно написано в вопросе. nginx отлично кэширует GET, надо просто ключом поставить что то типа
    proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
    а POST как раз некэшируется и вроде как и не надо. Так что проблема вроде как решается автоматом.
    Ответ написан
    3 комментария
  • RegExp-задачка

    Wott
    @Wott
    Правильно послал вас к позиционным проверкам

    Смысл в том что бы исключить условие что цифры внутри скобок, то есть вводим проверку на отсутствие впереди закрывающей скобки (?!.*\)). Но возникнет проблема в том что мы можем таким образом захватить пару скобок впереди. Для исключения этого случая вместо любого символа ищем все, кроме открывающей скобки, — (?![^\(]*\))

    Конечный регэксп выглядит так: /\d{4}(?![^\(]*\))/
    Ответ написан
    2 комментария
  • Httpd начинает жрать память... и вешается?

    Wott
    @Wott
    Начинат надо с status и info для apache. Смотреть в сторону:

    SetHandler server-status
    SetHandler server-info

    Дальше смотреть в какой mode: если prefork то это скорее всего безудержное размножение children. Если worker то где-то память хотят много и не освобождают. Как вариант — баг в Апаче или модуле. Но скорее всего — багнутый скрипт.

    Делать мониторинг состояния apache и по нему и логам надо воспроизводить и локализовывать проблему.
    Первое — анализ логов запросов — искать что повторяется каждый раз когда память утекает и проверять.
    Второе — отключать по очереди и смотреть.

    А в целом вопрос из разряда «у не работает Х. Что мы сделать что бы заработало ?»
    Ответ написан
    Комментировать
  • Regexp: негативная ретроспективная проверка на принадлежность тегу

    Wott
    @Wott
    ретроспективная проверка работает с текущей позиции, то есть надо проверять не только
    </a>
    но и
    two</a>
    догадайтесь с одного раза как это сделать регуляркой :) подсказываю снаружи тега лучше брать [^<]*

    чуть сложнее будет если учитывать всякие span-ы, strong-и и прочие em-ы
    Ответ написан
    Комментировать
  • Практика программирования на PHP

    Wott
    @Wott
    Возьми любую CMS — первую лучше поменьше и сделать на нем сайт — «как вот тот».
    Потом возьми другую, третью — разберешься как все работает, посмотришь как люди пишут ( смотреть код внутри CMS — обязательно ) и заодно получишь ценные знания о продуктах и свое мнение о них.
    Ответ написан
    3 комментария
  • Вывод сообщений в реальном времени (JS + PHP)?

    Wott
    @Wott
    flush не сильно поможет. Нужен отдельный протокол передачи сообщений — comet ли, websocket или ajax — вопрос десятый, главное как это сделать.

    Для большого количества небольших операций типа загрузка в базу строк я просто делал ajax скриптом пакеты INSERT'ов — отмечал прогресс в клиенте и брал следующий блок в цикле. Такой подход требует дополнительных операций типа сохранение/восстановление контента последней операции, если она не удалась и корректного отката, и так далее.

    Для длинных операций, типа запросов по сети, я делал фоновый процесс который брал из очереди задание и выполнял его. А клиент ajax-ом же просто отображал статус очереди.
    Ответ написан
    Комментировать
  • IDE для разработки на PHP?

    Wott
    @Wott
    Перепробовал несколько, но в свое время остановился на Eclips, но из-за прожорливости и глюков перешел на NetBeans
    Последний имеет несколько лучше структуру проектов ( которые на самам деле подпроекты или библиотеки или даже модули/плагины в основном проекте ) и их обьединения в группу ( которая и есть проект ), но Mylyn на Eclipse-е намного приятнее для устранения багов, и работу с issues с багтреккера. Но если не работать с крупными командными проектами то NetBeans — лучший, правда я к нему привыкал неделю где-то.
    Ответ написан
    Комментировать
  • NetBeans 6.9.1, поведение вкладок редактора (PHP)

    Wott
    @Wott
    alt+tab? 6.9.1 научилось вкладки в отдельные окна оформлять :)

    Если же имеется в виду дефолтовый Ctrl+Tab, то забиндить на него то что по умолчанию на Ctrl+PgDn, что-то типа Next Tab
    Ответ написан
    1 комментарий
  • Проблемы с MySQL MyISAM - дублирование записей и крэш больших таблиц

    Wott
    @Wott
    Надо смотреть блокировки в mysql и iostat и вообще что там может быть с диском связано.
    А вообще как-то странно видеть MyISAM для таблиц в которые часто пишут.
    Ответ написан
  • Чат на PHP: узкое место БД - как решить?

    Wott
    @Wott
    Не совсем понятно зачем вообще база. Насколько я понимаю она используется для передачи данных между процессами запросов ( запросы тоже не нужны — используйте websocket ) а для этого либо надо писать отдельный демон, либо использовать сервер с настоящим fastcgi для php или fastcgi на любом другом языке, где данные будут общими. Ну и разруливать их семафорами корректно.

    Еще как вариант — мемкеш, но в нем надо делать структуру данных что бы было удобно добавлять сообщения и собирать ответ, зато не надо думать о сборке мусора.

    Может быть база нужна для истории… хотя кому она нужна в чатах? :) сделать ее можно в офлайне, кроном.
    Для старта сервера — если все правильно сделать то и ее не надо будет, поскольку клиенты имеют текущую ситуацию, надо просто их оповещать об изменениях. А они на старте не нужны.
    Ответ написан
  • Посоветуйте движок для уютного бложика :-)

    Wott
    @Wott
    А чего сложного в WP? Всего ничего 11 простых таблиц, где только категории представляют хоть какую-то сложность.
    Предельно тривиальная тема, да и ядро несложное.
    «Магекомбайном» его делают хуки, которые можно всегда смотреть в коде.
    Ответ написан
    Комментировать
  • apache падает с signal 11

    Wott
    @Wott
    очень может быть что проблема в каком-нить модуле, хотя апач я бы все таки обновил.
    https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=segmentation+fault
    Ответ написан
    Комментировать
  • Замена всех внешних ссылок через редирект

    Wott
    @Wott
    Конечно криво, но
    preg_match или preg_match_all с флогом на сохранение смещения найденного
    меняем через str_replace
    цикл на следующий слайс с места последнего смещения
    Ответ написан
    Комментировать
  • Почему нет прироста после перехода на php-fpm с обычного php?

    Wott
    @Wott
    RTFM php-fpm.org/wiki/FAQ

    Does the PHP-FPM to speed processing of requests?



    No, it does not really change anything. However, if you use some of the special features, the performance of certain queries can be accelerated.
    Ответ написан
    Комментировать
  • Программист: повышение уровня

    Wott
    @Wott
    1. Сделать что-то для себя или кому-то. Развивать и не лениться все переделывать каждый раз.
    2. Open source с хорошим комьюнити, что бы поправили если что.
    3. Мелкие проекты на биржах
    Ответ написан
    4 комментария
  • Поменять местами 2 строки в таблице mysql

    Wott
    @Wott
    SQL не умеет менять сразу две строки одновременно, значить через третье значение.
    Ответ написан
    Комментировать
  • Подскажите систему мониторинга за сложным PHP проектом

    Wott
    @Wott
    Возьмите любую систему мониторинга ( у меня так получилось что есть аккаунт в serverdensity.com, но там агенты в python что для сервера легче ) и пишите для него агента для своего проекта. Вытащить несколько запросов и оправить их по http имхо банально
    Ответ написан
    Комментировать