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

    @rPman
    Использовать особенности почти всех файловых систем - символьные ссылки. Пусть file.jpeg будет ссылка на нужный файл, пересоздавайте его по мере надобности.
    Ответ написан
    Комментировать
  • Не запутает ли такой полиморфизм разработчика?

    @rPman
    Я не буду говорить про ООП, читаемость кода или его модифицируемость в будущем.

    Меня просто корежит использование строк для передачи управляющих команд в методы... тем более там где это совершенно не нужно. Вдумайтесь, исключительно для вашего синтаксического сахара, в базовые методы коммуникации вы вставляете сравнение строк! Ну что мешает завести численный дефайн или воспользоваться делегатами (передать сам метод в качестве параметра)?

    К сожалению это за последние десять лет стало нормой на столько что можно увидеть абсолютно везде... а потом удивляются, а почему все работает так медленно, и памяти кушает много.

    p.s. по теме, если параметр, который подставляют в вызов method() будет браться из-вне, например значение одного из параметров в GET, то я бы порекомендовал пропустить эти параметры через специальный метод-фильтр, конвертирующий строки во внутреннее представление (числовые дефайны или ссылки на методы), он же проверяет их валидность... вот это удобство для программиста, когда выделяется отдельная задача в отдельный метод/класс... ООП тут совершенно не требуется, так как нечего наследовать, хотя может быть использовано просто как синтаксический способ объединить код и данные в одном месте.
    Ответ написан
    3 комментария
  • Как сделать счетчик с автоматическим увеличением числа каждый день?

    @rPman
    Вам не нужно событие смены дня, вам нужно само число?
    Если вам нужно число, гарантированно уникальное, больше на единицу от предыдущего дня, то берете дату в формате unixtime, прибавляете смещение (когда вам нужно считать смену дня) и делите результат на (60*60*24) - целая часть результата - ваш индекс, можете вычесть какое то значение, соответствующее вашему первому запуску.
    Ответ написан
    Комментировать
  • Как запускать php на дата-контейнере Jelastic?

    @rPman
    вас не смущает путь до скрипта в ошибке?
    /mnt/www/html/info.php

    а монтируете
    /mnt/owncloud
    Ответ написан
  • Как подменять вкладки?

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

    Не понимаю смысла в этих действиях и какую из этого можно извлечь пользу, но лично я такое наблюдал довольно давно, только в одном месте - на порносайте.
    Ответ написан
  • Как обеспечить вечную работу PHP скрипта?

    @rPman
    Оформить php как сервис, в зависимости от того, какая система загрузки установлена читаnь документацию, upstart, systemd и т.п. во всех случаях это будет либо простейший скрипт (скопированный из примеров документации или из интернета) в котором вы укажете запуск своего php в виде запуска в цикле на том же bash - while(true);do php main.php;slep 1;done или на любом другом скриптовом языке, пусть и php.

    Рекомендую реализовать хоть какой то контроль над причиной завершения работы вашего скрипта, через код ошибки, или свои средства логирования и состояния, и корректно отрабатывать ситуацию с ошибками, чтобы не получилось бесконечный запуск приложения с немедленным выходом (допускается остановка с отсылкой сообщения администратору или к примеру экспоненциальный рост времени между перезапуском, если это происходит сразу), но это общие советы с любыми вечноработающими приложениями.
    Ответ написан
    Комментировать
  • Где можно найти скрипт обмена сообщениями между пользователями на php и mysql?

    @rPman
    поиском по хабру, первый же пример - habrahabr.ru/post/218751
    p.s. ну может быть не mysql, но важно ли это?
    Ответ написан
  • Аналог TeamViewer, Ammy, VNC

    @rPman
    Если на вашей стороне нет проблемы с белым IP и открытыми портами, то собираете portable сборку практически любого vnc server, высылаете ее с готовым ярлыком/батником запуска этого сервера с подключением к вашему запущенному vnc viewer в режиме listen connect.

    Оформить в виде самораспаковываемого архива думаю сумеете?
    Ответ написан
    2 комментария
  • И всё-таки, как «правильно» выполнять из PHP сложные sql-запросы?

    @rPman
    Не нужно перебарщивать, решите только одну главную проблему передачи параметров — escaping и quoting параметров, никаких монструозных велосипедов, только поправьте метод выполняющий ваши запросы, :param пусть идут в sql-запрос без изменений (а сам запрос сделать параметризованным, список параметров получается просто поиском всех вхождений /\:(\w+)/), а {param} заменяются по старинке, пусть там останутся куски самого запроса с выражениями.
    Ответ написан
    Комментировать
  • IIS, php, w3wp.exe, cmd.exe и многопоточность? заставить не залипать процессы?

    @rPman
    Выглядит, как будто процессы где то обращаются к общему ресурсу и ждут его освобождения (какой-нибудь кривой метод реализации очереди), выше уже посоветовали тщательно отладить и выявить где именно в коде образуется затык, обычным подробным логированием.

    Переложить весь код генерации в отдельный процесс, запускаемый вне сессии IIS (отдельным сервисом или даже standalone приложением) на том же php через какую-либо простенькую очередь, а вебсерверу оставить задачу — поместить задание в очередь, ждать его завершения, отдать результат.

    Достоинство такого разделения — более полный контроль над нагрузкой (процесс, обрабатывающий задания в очереди может быть многопотоковым) и самое главное, он будет запускаться в контексте обычного приложения без каких-либо внутренних особенностей и глюков, которые порождает IIS (ведь вы же сами показали что только под IIS возникает проблема).

    И главное, переписывать ничего не придется, фактически только добавить очередь задач и ее обработку.
    Ответ написан
  • Как эмулировать браузер на php?

    @rPman
    Не надо мучиться, напишите на моно простейшее консольное приложение использующее штатный контрол WebBrowser (при запуске под mono используется firefox), и пишите всю логику на javascript, запуская тут же на этой же странице на onload (точнее его аналог события на контроле).
    Оно действительно получается очень простым, вся логика влезает в javascript с использованием jquery (его можно грузить в отличный от '$' идентификатор). И при этом запускается такое приложение на любом самом дешевом vps linux.

    Я думаю между этим приложением и своим на php обмен сообщениями осилите c простейшими push ajax запросами или даже websocket?
    Ответ написан
    Комментировать
  • Socket-сервер php или python?

    @rPman
    Ни с сокетами, ни с семафорами, ни с шаред мемори из php у меня не было никаких проблем, память не утекала, обрабатывалось быстро… но дальше все зависит от того что вы будете делать и использовать.

    А дальше — выбор языка, чисто холиварный разговор. У питона перед php больший выбор готовых модулей (и гораздо аккуратнее их организация), нет проблем с целыми числами (32bit vs 64bit) и кому то сам язык больше нравится, но потребление памяти у питона значительно выше чем в php, да и синтетические тесты по работе с примитивами у php показывают выше скорость.

    p.s. А если у вас мало внешних вызовов и много внутренних расчетов, может сразу посмотреть на c++? :)
    Ответ написан
    3 комментария
  • Проблема в связке PHP + MS SQL Server 2005

    @rPman
    Очень плохая практика тяжелых монстров подключать к веб-морде напрямую. Это проблема создается разработчиком еще на этапе разработки архитектуры приложения.

    Про монстров, я имею в виду mssql/oracle/ibmdb…

    Исправить это сложно, особенно если не предусмотрено мест в коде для этого. Основное направление, ставьте что-то по проще, между веб-сервером и базой данных, основанное на document oriented db, какое-нибудь nosql решение (но и mysql+text indexing services поставить между вебом и oracle — тоже нормально), иногда достаточно решений вида 'просто кеш'.

    Обязательно этот модуль на себя должен брать вопросы аутентификации и авторизации, да и вообоще вопросы безопасности по максимуму (сам участвовал когда то в решении, где логин пользователя веб был логином в БД oracle, страшно вспомнить, хотя права доступа БД были оттюнены и завернуто было все через пакеджи и вьюхи).
    Ответ написан
    Комментировать
  • Как програмно сделать ставку на Yahoo Auctions JP?

    @rPman
    Когда то работая с эмитацией действий пользователей на различных сайтах понял что каждый раз исследовать код сайта, изучать запросы и реверсить логику совсем не верная дорога, не надежная и сложная.

    Намного проще оказалось реализовать основную (или часть) логику автоматизации и анализа в самом браузере с помощью javascript (со всей мощью jquery и т.п.), запуская браузер в какой либо компоненте в своем приложении (я использовал mono и компоненту штатную WebBrowser, она основана как я понимаю на firefox), приложение спокойно собирается в cli и работает на 'безголовых' серверах linux, при этом нет нужды бороться с владельцем сайта, который борется с ботами и ддос, выявляя тех кто эмитируют POST и GET запросы с помощью curl…
    Ответ написан
  • Сделал программный проект, базирующийся на Windows 7 Embedded, теперь надо обновлять все это дело?

    @rPman
    — я смешал в одной миске мороженное (его очень любят дети), мясной рулет с тушеной картошечкой (ммм, питательно), кофе и черный чай (я не знаю что больше любит заказчик), и пропустил его через миксер, чтобы влезло в тюбик. Теперь это завтрак для космонавтов.
    — я все правильно сделал?
    Ответ написан
    Комментировать
  • Какие есть средства локализации на уровне MySQL?

    @rPman
    Если не перелопачивать базу данных, простенько, для галочки… то вместо текста в поле храните сериализованный массив {ru:'Бла, бла, бла',en:'Blah, Blah, Blah',..}…

    Но в общем случае это не решит проблем, которых на самом деле гораздо больше появляется при переходе от одноязычного сайта к мультиязычному. Они все специфичные, вида что делать с данными, смысл которых 'перевод'… нужна ли новая сущность на них со ссылкой на оригинал или достаточно связи 1к1 и т.п.
    Ответ написан
  • Автоматическая генерация тестов для PHP

    @rPman
    Вообще то как помощник для написания тестов такой бы модуль был бы неплох, не абсолютное решение но кучу муторной работы вполне автоматизировал бы.
    Ответ написан
    Комментировать
  • Какой лучший отладчик на PHP?

    @rPman
    xdebug?
    phpshtorm например поддерживает
    p.s. настроить на windows xdebug — будет проблемно, в готовом бинарном виде совместимые версии php и xdebug фиг найдешь, хотя я серьезно и не копал.
    Ответ написан
    3 комментария
  • SimpleXML, пространства имён и атрибуты тегов?

    @rPman
    Проблема в том что в имени атрибута есть символ '@', решение — преобразовать объект в ассоциативный массив и обратиться к атрибуту как к элементу массива:
    $bug_blog=(array)$blog;
    var_dump($bug_blog['@attributes']);
    
    Ответ написан
    1 комментарий
  • Google mail api for php (Google Apps for domain)

    @rPman
    а средствами штатного smtp не подходит? не рассылки а просто письма-уведомления спокойно отсылал со своего gmail аккаунта, я так понимаю в не зависимости от того, есть домен или нет, работать все равно должно.
    Ответ написан
    3 комментария