Json и php

Тема в разделе "Как сделать...", создана пользователем WOLF_2010, 31 май 2015.

  1. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    надеюсь что тему задаю в правильный раздел, потому что тема не стандартная. Просто хочется понять как устроен алгоритм плагинов, приложений и дизайна в webasyst (ребят тока не гоните к авторам двига, они все равно ниче не расскажут), я для себя просто хочу узнать,
    суть вопроса такой: у них есть инсталлятор плагинов, вылаживаю сам инсталлятор плагинов так как он большой и на форум не поместится кодами

    и есть файл sources.php в нем хранится такая информация
    PHP:
    return array (
      
    'apps' => 'http://www.webasyst.com/download/apps/list/',
      
    'system' => 'http://www.webasyst.com/download/system/list/',
    );
    //EOF
    получается скрипт инсталлятора ссылается на sources.php и по ссылкам выбирает нужную информацию?

    если перейти по ссылки http://www.webasyst.com/download/apps/list/, то выводится такая информация, непонятно то, в чем хранится эта информация, знаю что json_encode, кодирует символы php, скорее всего кодирование происходит тут

    PHP:
    private static function getServerSignature($raw false)
        {
            
    $signature = array(
                
    'php' => preg_replace('@([^0-9\\.].*)$@'''phpversion()),
                
    'c'   => PHP_INT_SIZE,
                
    'api' => PHP_SAPI,
            );
            if (
    function_exists('php_uname')) {
                
    $signature['os'] = @php_uname('s');
                
    $signature['r'] = @php_uname('r');
            } elseif (
    defined('PHP_OS')) {
                
    $signature['os'] = constant('PHP_OS');
            }
            return 
    $raw $signature base64_encode(json_encode($signature));
        }
    объясните пожалуйста как все происходит? и в каком в виде и расширении все таки хранится информация на сервере, если перейти по ссылке http://www.webasyst.com/download/apps/list/
    то мы увидим такую информацию - закодированную Json`ом

    PHP:
    {"shop":{"icons":{"96":"\/\/www.webasyst.com\/wa-data\/public\/updates\/img\/29\/129\/icon.96x96.png","48":"\/\/www.webasyst.com\/wa-data\/public\/updates\/img\/29\/129\/icon.48x48.png","24":"\/\/www.webasyst.com\/wa-data\/public\/updates\/img\/29\/129\/icon.24x24.png","16":"\/\/www.webasyst.com\/wa-data\/public\/updates\/img\/29\/129\/icon.16x16.png"},"name":"Shop-Script 6","version":"6.0.3.38328","description":"\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d!","vendor":"webasyst","vendor_name":"Webasyst","price":"14 999 \u0440\u0443\u0431.","price_hosted":"249","commercial":true,"license":"WA","license_url":null,"plugins":0,"themes":0,"tags":["homepage","magicdesk","popular","updated"],"lease_price":null,"publish_datetime":"2013-09-05 09:52:01"},
    надеюсь, что все таким мне кто нибудь объяснит как все происходит, заранее спасибо
     

    Вложения:

  2. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    попытался расшифровать json получил такое

    PHP:
    "banner" : { "commercial" true,
          
    "description" "Управление баннерами для вашего сайта.",
          
    "icons" : { "16" "//www.webasyst.com/wa-data/public/updates/img/37/837/icon.16x16.png",
              
    "24" "//www.webasyst.com/wa-data/public/updates/img/37/837/icon.24x24.png",
              
    "48" "//www.webasyst.com/wa-data/public/updates/img/37/837/icon.48x48.png",
              
    "96" "//www.webasyst.com/wa-data/public/updates/img/37/837/icon.96x96.png"
            
    },
          
    "lease_price" null,
          
    "license" "WA",
          
    "license_url" null,
          
    "name" "Баннеры",
          
    "plugins" false,
          
    "price" "999 руб.",
          
    "price_hosted" "16",
          
    "publish_datetime" "2014-05-21 03:33:06",
          
    "tags" : [  ],
          
    "themes" false,
          
    "vendor" 667213,
          
    "vendor_name" "welldi-studio.ru",
          
    "version" "2.1.1"
        
    },
      
    "blog" : { "commercial" false,
          
    "description" "Удобный движок для ведения блога.",
          
    "icons" : { "16" "//www.webasyst.com/wa-data/public/updates/img/43/43/icon.16x16.png",
              
    "24" "//www.webasyst.com/wa-data/public/updates/img/43/43/icon.24x24.png",
              
    "48" "//www.webasyst.com/wa-data/public/updates/img/43/43/icon.48x48.png",
              
    "96" "//www.webasyst.com/wa-data/public/updates/img/43/43/icon.96x96.png"
            
    },
          
    "lease_price" "free",
          
    "license" "Свободная лицензия LGPL",
          
    "license_url" "http://www.gnu.org/licenses/lgpl.html",
          
    "name" "Блог",
          
    "plugins" 0,
          
    "price" "0 руб.",
          
    "price_hosted" "0",
          
    "publish_datetime" "2013-09-04 08:10:37",
          
    "tags" : [  ],
          
    "themes" 0,
          
    "vendor" "webasyst",
          
    "vendor_name" "Webasyst",
          
    "version" "1.3.1.37613"
        
    },
    получается на сервере хранится информация в таком виде? и в файле с расширением .js? или просто list?
    http://www.webasyst.com/download/apps/list/
    или просто list, а в нем кодированный json?
     
    Последнее редактирование: 31 май 2015
  3. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    любой нормальный разработчик будет хранить данные в базе данных. а если пользователь что-то запрашивает, то эти данные берутся из базы в виде объекта либо массива объектов, обрабатываются (в вашем случае вероятно функцией PHP json_encode) и выдаются пользователю
     
  4. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    а почему они берутся из http://www.webasyst.com/download/apps/list/? и там зашифрованный json, получается там пустой файл list и туда записывается json? или там уже имеется шифрованный json в файле list?
     
  5. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    я уже объяснял, скорее всего json генерируется налету
    что вы имеете ввиду под "зашифрованым json" ? если строку типа "\u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0439", то это никакой не шифр, просто символы отличные от латиницы в кодировке utf-8 преобразуются в такой вид
     
  6. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    если я вас правильно понял, то файл list на сервере пустой, получается php генерирует json и записывает все в /download/apps/list/ так?
     
  7. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    list на сервере не пустой. По ссылке /download/apps/list/ работает php скрипт, который генерит контент и отдает пользователю.
     
  8. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    получается этот list, это list.php?
     
  9. denverkurt

    denverkurt Denve®

    Регистр.:
    23 дек 2013
    Сообщения:
    610
    Симпатии:
    348
    может list.php, может index.php, а может и другое имя иметь
    у веб-серверов много инструментов для видоизменения ссылок и путей к исполняемым скриптам
     
  10. WOLF_2010

    WOLF_2010 Постоялец

    Заблокирован
    Регистр.:
    8 окт 2011
    Сообщения:
    86
    Симпатии:
    109
    плохо, что php файл там(((, спасибо за разъяснение