Ответы пользователя по тегу PHP
  • Хватит ли 4000$ на разработку CMS?

    @edogs
    При Вашей стратегии - разумеется не хватит.
    Даже если Вы не из Москвы, офис Вам дешевле 500уе в месяц найти вряд ли получится. 3 месяца - 1500уе. Остается 2500уе. Делим на 3 месяца. Получается 800 (допустим)уе в месяц. Делим на 2-3 программистов. Получается по 280-400уе в месяц на программера. За эти деньги профессионалов Вы не найдете, без вариантов.

    В Вашем случае оптимальный вариант это забыть об офисе уйдя на фриланс (сэкономили 1500) и нанять одного программера вместо 2-3. Получится 1300уе в месяц программеру. Уже та сумма, за которую можно найти прогера среднего уровня, не делающего явных косяков. А отсутствие синхронизации между 2-3 прогерами - сэкономит до кучи еще и время.

    По сумме 4000уе за цмс - в принципе реально, так что для Вашей ситуации - ищите 1 прогера на фрилансе.
    Ответ написан
    7 комментариев
  • PHP иногда не может подключится к Memcache и Sphinx?

    @edogs
    В чем причина не знаем, но если все на одном сервере — сокеты использовать правильнее в большинстве случаев.
    Заодно убедитесь, что мемкэш не доступен из внешнего интернета, по умолчанию доступен.
    Ответ написан
  • Rewrite файлов

    @edogs
    Проверка на существование файла идти в таком случае не должна, поэтому причина в другом.
    Здесь 2 варианта нам видится
    1) У Вас перед апачем стоит nginx, который и занимается непосредственно раздачей статики (тогда мы не вполне понимаем что делать — вероятно надо к сис.админу/хостеру, но по крайней мере понятно где проблема).
    2) У Вас на сервере стоит какой-то обработчик pdf, который перехватывает на себя запросы к pdf (проверяется легко, посредством запроса существующего файла с заведомо неизвестным расширением).
    Ответ написан
    3 комментария
  • Умное определение типа переменной

    @edogs
    Если чужой колхоз годится, то stackoverflow.com/questions/2690654/how-to-get-the-real-type-of-a-value-inside-string можно за базу взять, чутка ошибок поправить и типов добавить:)
    А вообще для такой задачи лучше свой колхоз сделать, т.к. задача у Вас какая-то атипичная видимо.
    Ответ написан
    Комментировать
  • Оптимизация загрузки изображений по url

    @edogs
    на загрузку 1 картинки уходит около 0.7 секунд
    На что уходят эти 0.7 секунд? Установка соединения, днс резолвинг, скачка, что-то еще?

    copy, если это в прямом смысле copy обычное по http — худший вариант. На днс резолвинг, например, в ряде случаев может уходить 0.5 секунды, а он будет происходить каждый раз при copy с хорошей вероятностью.
    Делайте curl, все скачки в одной сессии и включайте кэш днс в опциях курла хороший по времени. Уже одно это может на порядок улучшить результат.

    php-шный мультикурл вещь пока несовершенная:( Мы бы запускали что-нибудь шелловское через exec, тот же wget например в несколько потоков или что-то мультипоточное изначально.
    Ответ написан
    Комментировать
  • Еще одна система для учета личных финансов

    @edogs
    Ручное занесение необычайно напрягает.
    Никакой радости разгребать каждый день Х чеков, в котором еще и позиции к Х разным категориям могут относится — нет абсолютно.
    Сервисы разгребающие деньги по выгрузке из ИБ лучше, но не более чем рыба второй свежести, опять же, из-за мегамаркетов всяких и разных категорий товаров в одном чеке.
    Эпик вин будет у сервиса, который умеет автоматом разгребать фотки разных чеков.
    Закупился, сфотал — всё.
    Все остальное это не просто велосипед, это на фиг не нужный изначально велосипед.
    Ответ написан
    7 комментариев
  • Прием почты бэкендом приложения (PHP)

    @edogs
    Решали такую задачу.
    По совокупности параметров и с учетом ограниченности бюджета сделали так.
    Со всех адресов идет форвард/копия на один адрес, откуда они и забираются пхп скриптом по крону.
    Тупо, просто, надежно, масштабируемо… дешево. Можно было сделать лучше, но было бы дороже:)
    Ответ написан
    Комментировать
  • set_time_limit не работает, скрипт отрабатывает бесконечно долго

    @edogs
    Скрипт именно работает бесконечно долго?
    Потому что
    Функция set_time_limit() и директива max_execution_time влияют на время выполнения только самого скрипта. Время затраченное на различные действия вне скрипта, такие как системные вызовы функции system(), потоковые операции, запросы к базам данных и т.п. не включаются в расчет времени выполнения скрипта.

    То есть если допустим у Вас граббер где 50 секунд file_get_contents отрабатывает, а потом 30 секунд запрос в базу идет и еще sleep-ом догоняетесь к примеру секунд на 40, то все эти 50-30-40 не в счет.

    И еще на всякий случай. set_time_limit Вы же один раз выполняете? Просто если он случайно в цикл попал и выполняется на каждой итерации, то эти выставляемые 10 секунд они отсчитываются с момента задания значения set_time_limit_ом
    Ответ написан
    1 комментарий
  • PHP Cluster и файлы сессий на общем файловом хранилище. Возникают бесконечные блокировки?

    @edogs
    Сессии блокируются индивидуально под каждого юзера, поэтому ситуация «висит абсолютно все и ждет» очень необычна.
    Учитывая что у Вас iSCSI, более логичным было бы предположение о том, что кончился лимит на кол-во коннектов с файлохранилищу по tcp/ip, и поэтому все висит — т.к. ждет пока свободные коннекты освободятся. Проверьте эту версию. Если она верна, то скорее всего по какой-то причине не рвется (или не всегда рвется) коннект после отработки пхп скрипта и они накапливаются.
    Быстрый фикс — сбрасывать долго висящие соединения или увеличить лимит на их количество. Долгий — разобраться почему не рвутся и пофиксить.
    Похожая проблема иногда возникает с persistent соединениями с базой или с мемкешем, поэтому их использовать стремно в реальных проектах, хотя теоретически они круты.
    Ответ написан
    2 комментария
  • VBulletin 5.0.2 вместо кириллицы знаки вопроса

    @edogs
    В четвертой версии данная проблема решалась добавлением
    mysql_query («set character_set_client='utf8'»);
    mysql_query («set character_set_results='utf8'»);
    mysql_query («set collation_connection='utf8_general_ci'»);
    Не знаем как в 5-той, но в 4-той, равно как и в 3-ей версии по правильному это решалось не добавлением тех 3 строк, а раскомментом includes/config.php строчки
    $config['Mysqli']['charset'] = 'utf8';

    В базе все отлично, ну по крайней мере в phpmyadmin все отлично просматривается.
    А phpmyadmin какое соединение с базой по умолчанию имеет? Если просто скрипт сделать для чистоты эксперимента, который берет из базы запись, устанавливая и/или не устанавливая чарсет — проблема где будет?
    Ответ написан
  • Проблема с функцией flock()?

    @edogs
    Попробуйте
    а) Фклозить файл даже в случае если флок не удался (сейчас у Вас fclose только внутри блока с успешным flock-ом, это не вполне корректно).
    б) clearstatcache перед вторым файлсайзом.

    p.s.: Если php запущен как cgi, то на блокировку полагаться нельзя.
    Ответ написан
    1 комментарий
  • Как CMS может понять, какую страницу от него требуют, не пользуясь суперглобальными переменными?

    @edogs
    php.net/getenv
    $_SERVER['REQUEST_URI']='bbb';
    echo getenv('REQUEST_URI');
    

    Выведет НЕ bbb, а реальный урл.
    Раньше очень модно было использовать именно getenv в цмс-ках.

    И соответственно почитайте про putenv, внимательно (по умолчанию не все переменные можно менять).

    p.s.: А так же php.net/apache_getenv и так далее по смыслу.
    Ответ написан
    1 комментарий
  • Как разобрать такой POST ответ? API интернет-магазина

    @edogs
    На запрос именно в браузере он это выдает? Прокси и прочего нет?
    Не так давно сталкивались с аналогичным и там тоже было HTTP/1.1 100 Continue.
    Но когда стали тащить не первую часть (не вспомним уже сейчас почему отдавалась только 1-ая часть, но изменения с нашей стороны привели к нормальному результату в итоге), а полный ответ, то в остатке сразу после var_dump был нормальный полноценный xml ответ.
    В общем проверьте реально ли полностью Вы получаете ответ, нет ли чего после этого print_r-а.
    Ответ написан
    Комментировать
  • Сколько времени должно занять подключение робокассы у программиста на php?

    @edogs
    Пара часов абсолютный максимум если именно робокасса. Если дольше, то программисту пока еще учиться надо, а не работать. Если профи, то полчаса максимум — там все очевидно, стандартно + примеры кода есть рабочие.
    С другими платежными системами может дольше занимать, из-за большей сложности (данные на почту и pgp сигнатуры) или из-за большей глюкавости (порядок и тип аргументов при формировании хэша не очевиден).
    Это, разумеется, без учета «бюрократического» времени, т.е. если аккаунт уже полноценно работает.
    Ответ написан
    4 комментария
  • Хранить и считать время круга

    @edogs
    Хранить в int
    Вычислять как 1:44.912=1000*60*1+1000*44+912 и соответственно наоборот.
    Разница и среднее и прочее — высчитывается очень просто.
    Ответ написан
    1 комментарий
  • Настройка локали в php под windows для работы с UTF-8?

    @edogs
    Посмотрите браузером какой контент_тайп _реально_ отдается сервером.
    Вполне возможно что какие-то настройки оверрайдят Вашу попытку отдать utf8, например www.php.net/manual/ru/ini.core.php#ini.default-charset или какие-то настройки сервера. А дальше разбирайтесь по ситуации, ищите что и где меняет.
    Ответ написан
    1 комментарий
  • Что лучше: очередь запросов или один, но большой?

    @edogs
    Один запрос.
    Это самый распространенный (и к счастью самый легко устраняемый косяк), когда делают нечто вроде foreach() mysql_query; что при всего-то даже при 100 элементах массива дает результатом 100 запросов. Жуть страх и трепет.
    Ответ написан
    1 комментарий
  • Сессии на PHP

    @edogs
    Перед <? php нет пустых мест? bom символов, например? Печеньки с номером сессии могут не уходить если так.

    Время на сервере корректное? Печеньки с номером сессии могут удаляться сразу если так.
    Ответ написан
    2 комментария
  • PHP 5.2.6 addslashes() имеет утечку памяти?

    @edogs
    5.2.17 не течет, так что на 5.2.* крест-то не ставьте.
    Так же очень любопытно зачем Вам в cms addslashes, уж не для работы ли с базой случаем?
    Ответ написан
    1 комментарий