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

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Ну начать можно с того что не:
    (string)$badprice = $product->ЦенаЗаЕдиницу;
    А:
    $badprice = (string) $product->ЦенаЗаЕдиницу;
    Это первое что стоит попробовать.
    У вас достаточно странный заголовок вопроса. Потому, что вы похоже пытаетесь получить таки целое число. Иначе было бы 1.137 и:
    $priceExec = (float) str_replace(" ", ".", $badprice);

    P.s. Лучше при передаче числа в Query таки насильно приводить его к необходимому типу:
    $priceExec = (float) str_replace(" ", ".", $badprice);

    Получишь 1137.00. И ты и мускул будете чувствовать себя спокойнее. =))
    Ответ написан
  • Как сделать ЧПУ при помощи PHP?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Я сомневаюсь, но попробуйте после
    RewriteRule ^(.*)
    Добавить символ окончания строки $
    Таким образом:
    #...
    RewriteRule ^(.*)$ index.php?%{QUERY_STRING}
    #...
    Ответ написан
  • Как реализован toster, raindrop, hantim?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Насчет PHP в Habrahabr и Тостере - правда. Стоит плагин который никогда еще не ошибался и он четко показывает что пыха. Можно проверить по спец инструкциям которые вшиты в exe интерпретатора и при запросе отображают лого PHP но очень лень лезть. И даже один из друзей когда-то специально компилировал из исходников чтобы от него избавится.

    Благодаря замечанию @Stmol обратил внимание что на Brainstorage плагин действительно молчит.

    Хабрахабр и Livestreet
    Вот с клонами не совсем так как сказал @VitaZheltyakov. Когда-то читал ряд публикаций на тему истории создания хабра. Так вот история Хабра и история LiveStreet невероятно переплетается. Помню что чтение напомнило какой-то испанский сериал. Кто-то куда-то уходил, кто-то куда-то возвращался. Одно ясно помню, что руки разработчиков хабры участвовали в разработке этого движка, посему не клон а скорее копия мастера. И тут даже остается открытым вопрос, что было раньше.
    Вообще вопрос "Каким образом сделана такая тесная интеграция javascript с сервером, я понимаю, что ajax, но реализация?" очень общий и размытый но...
    Современная разработка насчитывает массу методов предварительного проектирования ПО. Именно они при последовательной и продуманной разработке ПО позволяют реализовать эту интеграцию оптимальной с точки зрения нагрузки на сервер и количества кода.

    Если интересно заглянуть "под капот", возьмите IDE которая форматирует код (PhpStorm например) и заставьте ее отформатировать код. Она его разложит по полочкам.
    Реально ли самому написать идентичный сервис?

    Если вы имеете в виду собрать и возглавить команду из нескольких человек, то да более чем. Если же имеете в виду "соло на клавитуре", то с очень большими трудностями, и по соотношению КПД на отрезок времени который придется посидеть абсолютно не оправданно. Кроме того Тостер это не только разрабы. Это дизайнеры, контент редакторы, когорта профессиональных журналистов, маркетологов для разработки стратегии (и самой компании ТМ в частности) которые знают и как подать, продать и как раскрутить. Это то о чем стоит помнить.
    Ответ написан
  • Как реализовать фильтр (php + mysql)?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    1. Не увидел схему таблицы категорий
    2. Не понял каким боком тут mysql. Подозреваю что хотите работать с json отсевом на уровне mysql но не уверен. Если хотите: LIKE, RLIKE и собственный генератор регулярных выражений. Хотя и смысла особо не вижу. Если объем данных не большой, то нагрузка что с поиском применяющим RLIKE, что просто на уровне php равноценна. А может даже на MySQL будет больше
    3. На счет того что "усложнил" склонен согласится.
    4. Не понял зачем хранить категории в json, подозреваю что нужна система подкатегорий, но тогда Adjacency List, Materialized Path и Nested Set в помощь.
    Ответ написан
  • Как раскодировать json?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Предположу что при раскодировке json_decode вам возвращает объект вместо массива. Для того чтобы получить массив и доступится к нему как $myvar['result']['message_id'] делайте $myvar = json_decode($inputstr,true) Если же все таки хотите оперировать объектом не передавайте второй аргумент (true) а просто доступайтесь как к объекту $myvar->result->message_id
    Стоит помнить объект ссылочный тип. Если изменяете его в одном месте, изменится везде.
    Ответ написан
  • Каков план личностного развития PHP программиста с нуля?

    somenumboola
    @somenumboola
    Team Lead in B-online Solutions
    Буду исходить из "дано" задачи "PHP программист" и из того что автор вопроса стремится заниматься сугубо back-end программированием. Заранее прошу прощения, я несколько увлекся
    Итак:
    1. Установка сервера (Open Server, Xampp, Denver), на начальном уровне. (просто из exe)
    2. Общие принципы.
    2.1. Типы данных.
    2.2. Переменные.
    2.2.1. Работа с переменными по ссылке.
    2.2.2. Методы объявления и уничтожения переменных.
    2.3. Управляющие конструкции (если знаком, то особенности синтаксиса в рамках языка).
    2.3.1. Условия.
    2.3.2. Циклы.
    2.4. Конструкции вывода(print, print_r, echo).
    2.5. Конструкции отладки и управления выполнением(var_dump,die,exit,break в циклах, пустой return;).
    2.6. Пред определенные глобальные переменные($_GET,$_POST,$_REQUEST,$_SERVER), константы зарезервированные под модификаторы (static, function, const, $this)
    2.7. Особенности версий 5.3, 5.4.
    2.7.1. Анонимные функции.
    2.7.2. Замыкания.
    2.7.3. Особенности объявления массивов.
    2.7.4. Пространства имен.
    3. HTTP протокол.
    3.1. Заголовки входящие.
    3.2. Заголовки исходящие.
    3.3. Процесс общения.
    3.4. Метод php “header(…)” в контексте темы.
    3.5. Глобальная переменная $_SERVER[] в контексте темы.
    4. Установка сервера на среднем уровне (основы файла .htaccess и RewriteRule)
    5. Процедурное программирование.
    5.1. Математические методы.
    5.2. Оперирование типами.
    5.2.1. Методы оперирования массивами (array_values,array_keys,array_map и т.д.)
    5.2.2. Методы оперирования строками (strlen,substr и т.д.).
    6. ООП.
    6.1. Классы.
    6.1.1. Инкапсуляция(public,protected,private). Понимать разницу.
    6.1.2. Наследование.
    6.2. Интерфейсы.
    6.2.1. Имплементация интерфейсов.
    6.3. Абстрактные классы.
    6.4. Полиморфизм.
    6.5. Магические методы.
    6.5.1. Базовые (__construct,__get,__set,__destruct)
    6.5.2. Расширенные (__invoke,__serialize,__isset)
    6.5.3. Разобраться когда стоит применять магические методы а когда это плохая практика.
    7. Библиотека SPL, и расширение поведенческих возможностей классов за ее счет.
    8. Базы данных.
    8.1. SQL
    8.2. Примитивный уровень общения с БД. (mysql_connect,mysql_close,mysql_query).
    8.3. Средний уровень общения с БД(PDO и другие кастомные библиотеки).
    8.4. Высокий уровень (ActiveRecord,DataAccessObject,ObjectRelationMapping).
    8.5. NoSql БД на примере MongoBD (настоятельно рекомендуется, но не обязательно).
    9. Фреймворки. На мой вигляд можно начать с Kohana. Сужу по уровню вхождения стажеров которых видел и отсутствию пространств имен с которыми по первах могут возникать проблемы.

    И главное, Внимание! Личностные качества.
    - Усидчивость.
    - Владение Google при оттачивании темы или сложной задаче на уровне, когда поисковик видит в пользователе не то что DDOS а полноценный физический краш. тест.
    - Не брезгливость. Умение заставить себя разбираться в гов… хм. Нелицеприятных дебрях.
    - Збагойствие. Отсутствие паники при различных ошибках и не состыковках. Всегда остыть и попробовать снова, но по другому.
    Ответ написан