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

    @rPman
    считываем nfc ридером
    каким именно? он определит то, каким образом вы будете получать эти данные и уже дальше каким способом заливать на сервер

    Если у вас android, то начните работу с этой кнопки
    Ответ написан
    Комментировать
  • Какой бесплатный хостинг с php можно использовать для таких целей?

    @rPman
    Зачем вам mysql? вы же единственный клиент будете?
    p.s. бесплатные без лишних условий это amazon aws free tier, google cloud (для россии под вопросом) или тот же oracle cloud free tier, получаете полноценную vps-ку, с очень медленным процессором, но вам хватит

    Если не жалко заплатить несколько баксов в год, ищите например тут lowendstock.com
    Ответ написан
    Комментировать
  • Можно ли использовать html-код в файле php?

    @rPman
    да можно, php изначально является шаблонизатором:
    <html>
    <body>
    <php if(@_GET['test']) { ?>
    <h1>Yo ho ho!</h1>
    <php }  else { ?>
    <h2>Yay!</h2>
    <php } ?>
    </body>
    </html>


    p.s. пожалуйста, по возможности переносите логику интерфейса на клиента и его javascript, а сервер пусть отвечает за бизнеслогику и данные, так как генерация интерфейса на стороне сервера очень устаревший подход
    Ответ написан
    Комментировать
  • Как быстро получить запись массива?

    @rPman
    var_export

    осторожно с циклическими ссылками

    p.s. на практике для сериализации данных используют serialize/unserialize (свой текстовый формат представления для php) и популярный кроссплатформенный json_encode/json_decode - осторожно, все это текстовые форматы

    настоятельно рекомендую использовать google protobuf, для которого есть реализация для php, удобно быстро эффективно, кросплатформенно и бинарный формат
    Ответ написан
    3 комментария
  • Как на PHP создать свой сервер, чтобы получать данные с Andriod приложения?

    @rPman
    index.php
    <?php
    file_put_contents('mydatabase.serialized',serialized($_POST).nl,FILE_APPEND);
    ?>

    вот тебе готовый сервер из одного файла, ничего не проверяет, просто сохраняет все что к нему приходит

    Все дальнейшие правки делайте в нем чтобы контролировать корректность параметров данных, сохранять для удобного использования, выдавать данные по запросу и прочее прочее

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

    @rPman
    что значит перестает работать? какую ошибку пишет клиенту?

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

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

    @rPman
    Не буду задавать вопрос зачем заниматься такой херней.

    Советы
    * первое - пили подробное тз, что хочешь получить, какой уровень поддержки команд php, без этого делать что либо запрещается, а точнее адекватного результата точно не получишь
    * второе - пили интерпретатор - это проще в тысячу раз, да медленно, но если задаешь подобные вопросы, остальные варианты скорее всего не для тебя

    Если все же надо быстро и без напряга - пили транслятор в другой язык программирования, например тот же php и исполняй в eval
    Ответ написан
    3 комментария
  • Подключение через прокси?

    @rPman
    Возможность подключаться к https прокси - это фича реализации конкретной http-прокси, т.е. будет зависеть от того какую выбрали (поддержка http connect), само собой в этом режиме кэширования не будет
    Ответ написан
  • Как сделать запрос с передачей header в php?

    @rPman
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($header));
    тут ошибка - это делает запрос POST с полями равными списку ваших заголовков (т.е. это будут уже данные а не заголовки)
    надо
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    Ответ написан
    Комментировать
  • Как передать переменные php?

    @rPman
    Если скрипты запущены отдельным процессом, то есть три общих пути - через файлы (передающих сериализовал переменные методом serialize/json_encode/var_export... а принимающий прочитал и десериализовал deserialize/json_decode/...), через сокеты (tcp например), но тогда один из скриптов должен быть сервером, или через третье приложение, которое будет слушать сетевые запросы обоих и реагировать на них (веб сервер или к примеру базы данных).

    Первый метод самый простой и универсальный, но есть проблемы с оперативностью, синхронизацией и монопольным доступом, решаемые но в результате станет не так просто. Частный случай файлов - это пайпы и потоки, когда приложения запускаются одновременно с указанием что вывод одного (его echo или запись в STDOUT) поступят на вход другого (чтение STDIN) примерно так:
    php a.php | php b.php
    Ответ написан
    Комментировать
  • Как грамотно считать данные с большого XML файла?

    @rPman
    3) полученные объекты превращал в массив с помощью конструкции json_decode(json_encode(<объект из шага 2>), true), именно этот пункт забирает очень много производительности по оперативке.
    ваша проблема тут!

    Зачем вы это делаете? ассоциативные массивы объективно медленнее чем работа с объектами, и даже если надо, всегда можно на конкретном уровне написать (array)$obj и работать с уже массивом полей объекта, так же foreach прекрасно работает с полями объекта как с элементами массива.

    p.s. и самое главное, не работайте на сайте с xml, преобразуйте данные в более удобный для php вид, к примеру serialize или даже var_export (делает код php инициализирующий массив, его можно просто include или eval), делайте это в момент загрузки xml файла на сайте админом, а уже при работе с данными подгружайте файл удобным способом.

    Ну и классика - данные нужно хранить в базе данных (загружать медленнее но зато работать быстрее всего)
    Ответ написан
    Комментировать
  • Как скачать файл из запароленной папки в локальной сети?

    @rPman
    Если не ставить задачу полной симуляции samba клиента на php то придется авторизовывать и подключать шару перед ее использованием, запустив штатную утилиту windows:
    net use \\machine\share\ password /user:username /persistent:no

    а в php тогда открывать эту шару как обычно (внимание, путь писать с разделителями '\' в строковых константах его нужно дублировать).
    fopen('\\\\machine\\share\\path\\file','r')должны работать все методы включая glob и другие.
    по окончании сессию можно дисконнектить
    net use \\machine\share\ /delete

    Авторизация не шустрая, не стоит это делать каждый раз при открытии файла, если это нужно делать часто и быстро.

    p.s. пока идет скачивание, пользователь, знающий про эту шару, сможет ее читать, так как авторизация идет на всю сессию пользователя windows, правда шара не будет подключена как буква диска, так что никак себя не проявит в интерфейсе.
    Ответ написан
    Комментировать
  • Как структурировать данные категорий при парсинге?

    @rPman
    Сначала нужно задаться очень важным вопросом, а как именно у вас будут использоваться категории? А то наворотите многоуровневую систему, а потом поверх этого будете реализовывать почти поиск по ключевым словам и не больше (т.е. только по названию категории без учета ее уровня вложенности).

    Базу данных необходимо в первую очередь строить исходя не из того что там хранится, а как это будет использоваться!

    К примеру мне нравится система, когда категория - это всего навсего метка/тег/ключевое слово, которое приписывается объекту, т.е. :
    справочник категорий (id,name,level,..)
    == 1-M ==
        V
    категории объектов(id_категория,id_объекта)
        ^
    == M-1 ==
    объекты (id,...)

    числовое поле level может находиться не в справочнике, а в таблице категории_объектов, если одна и та же категория может находиться у разных объектов на разных уровнях (либо придется заводить несколько одноименных категорий, каждую для своего уровня)

    Тут же можно в/рядом со справочником категорий хранить информацию по лимитам, взаимосвязей категорий и требованиям (например количество категорий всегда 3 или возможны объекты только с 1 корневой?)
    Ответ написан
    Комментировать
  • Как результат вызова команды php exec поместить в переменную или файл?

    @rPman
    Потому что это stderr и его перехватить можно либо с помощью пайпов и proc_open либо меняйте командную строку запуска nodejs так чтобы она возвращала ошибки в стандартный вывод или куда вам удобно простым перенаправлением в файл:
    exec("capture-website https://yandex.com --output=img.jpg 2>capture-website.err", $out);
    $err_str=file_get_contents('capture-website.err');
    Ответ написан
    Комментировать
  • Как лучше сравнить два файла изображения?

    @rPman
    В http стандарте есть заголовки, отвечающие за размер и время изменения файла
    посмотрите на ваш файл в своей программе или с помощью утилит curl -I http://.... сам файл при этом не загружается.

    Такие заголовки как Content-Length или Date или ETag, не всегда они есть но если они есть и изменились - значит файл изменился, иначе загружать весь не обязательно.
    Ответ написан
  • Как добавить файл на раздачу в торрент из php?

    @rPman
    создаете штатной command line утилитой mktorrent (идет с почти любым linux, например debian/ubuntu)
    а уже после добавляете его в любой торрент клиент с помощью web api
    Ответ написан
    Комментировать
  • Почему curl php последующие страницы ретранслирует на основной сайт?

    @rPman
    Универсального ответа нет но в большинстве случаев, с осторожностью, достаточно в файлах html и возможно javascript заменить простой заменой все вхождения site.ru на ваш домен

    т.е. перед curl_close($ch); проверяйте заголовок, тип данных curl_getinfo($ch, CURLINFO_CONTENT_TYPE); и в зависимости от типа заменяйте содержимое тела.
    Ответ написан
  • Как разместить сервер на php?

    @rPman
    Не пользоваться хостингом VDS, всеравно react на нем не поднимете.

    Вам нужна полноценная машина Dedicated Server либо виртуальная VPS.

    Чтобы вы не сделали, в настройках веб сервера всегда можно указать, какие каталоги показывать как файлы, какие пытаться исполнить как php а какие вообще не показывать. Это и называется - правильно настроить веб сервер.

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

    @rPman
    Вы закачиваете ВСЮ таблицу и построчно анализируя ее делаете апдейты по одной строчке, тут поплохеет любому серверу. Во первых почти наверняка всю логику можно просто засунуть в запрос, так как там проверки по простому условию на дату. Во вторых, я не изучал код, если это сложно реализовать в sql, то хотя бы не делайте update по одной записи, собирайте id необходимых записей и обновляйте пакетом либо через временную таблицу либо через инлайн данные тупо через where id in (список id)

    p.s. не пытайтесь везде работать с датами как дата в виде строки, это всегда неудобно, половина кода у вас парсинг строки с датой... работайте с __int64 date timestamp, зачастую это самый удобный тип данных.
    Ответ написан
    1 комментарий
  • Можно ли как-то считать несуществующие элементы массива равными 0?

    @rPman
    если ключи числовые то обычный for($i=0;$i<размер;$i++) ...
    Ответ написан
    Комментировать