Подскажите как получить данные (в квадратных скобках)

Тема в разделе "Как сделать...", создана пользователем evova2, 17 июн 2013.

  1. evova2

    evova2 Создатель

    Регистр.:
    13 ноя 2008
    Сообщения:
    11
    Симпатии:
    0
    Необходимо из JSON javascript получить данные в переменную php
    Данные из javascript исходник
    Код:
    <script type="text/javascript">var peppyData = {authToken:"51beb1c6GLW0RArMILmXFFJEnv-CKuRCsyA",isLoggedIn:"false",isSsAvailable:true,peppyMode:"edit",useGeowikiBackend:true,gwFeature:"[,[[,[,\"Аптека № 342 - Тоо, Производственно-коммерческий Центр\"],,273],[,[,,,,,[,45.202219999999997,37.290549999999996]],,278],[,[,,[,\"EjEIERoeChjQodC-0LLQtdGC0YHQutCw0Y8g0YPQuy4SAnJ1IBF6CwsQzrXCBRoCEAAMEi8IERocChbQv9C-0YEuINCh0YLRgNC10LvQutCwEgJydSAlegsLEM61wgUaAhAADBJjCBEaKwof0KLQtdC80YDRjtC60YHQutC40Lkg0YDQsNC50L7QvRICcnUYARgDGAIaIgoRVGVtcnl1a3NraXkgcmF5b24SB3J1LUxhdG4Y0QEY1wEgogR6CwsQzrXCBRoCEAAMEl4IERovCiPQmtGA0LDRgdC90L7QtNCw0YDRgdC60LjQuSDQutGA0LDQuRICcnUYARgDGAIaGQoOS3Jhc25vZGFyIEtyYWkSAmVuGNEBGAMgoQR6CwsQzrXCBRoCEAAMEhoIERoHCgJSVRiBASAhegsLEM61wgUaAhAADBIcCBEaCAoGMzUzNTEwILEBegsLEM61wgUaAhAADA\",\"Советская ул.\\nпос. Стрелка, Краснодарский край\\n353510\"]],,276],[,[,,,[,\"pharmacy\",\"Аптека\"]],,4882],[,[,,,[,,\"Аптеки\"]],\"ru\",4882],[,[,\"8 (861) 489-22-03\"],,4881]],\"10637305872250085845\",,\"0x40ee5d82e3419e0f:0x939f4d54faa4a1d5\"]",lbcClaimUrl:"http://www.google.com/local/add/choice?hl=ru\x26gl=RU\x26latlng=10637305872250085845\x26q=\x26near=",isRapEnabled:true,isPeppyGeocoderEnabled:true,userNickname:"",userProfileUrl:"/maps/user?uid=210985977147629245895\x26hl=ru\x26gl=RU",peppyUrl:"/maps/place?cid=10637305872250085845\x26authuser=0\x26continue=http://maps.google.ru/maps/place%3Fcid%3D10637305872250085845%26authuser%3D0\x26mode=edit",featureIsNew:false,isRliOverClusterOptionEnabled:true,isPeppyBusinessHoursEnabled:true,disablePendingOverrides:true,isPeppySplitHoursEnabled:true,isEmailNotificationsEnabled:true,hasUnverifiedEdits:false,signInToPeppyPageUrl:"https://www.google.com/accounts/ServiceLogin?service=local\x26hl=ru\x26nui=1\x26continue=http://maps.google.ru/maps/place%3Fcid%3D10637305872250085845%26authuser%3D0%26continue%3Dhttp://maps.google.ru/maps/place%253Fcid%253D10637305872250085845%2526authuser%253D0%26mode%3Dedit",sessionIndex:0,countryCode:"RU",isLbcUnlocked:true,isRelationAvailable:false,numCategories:5};var PEPPY_kennedy_enabled = true;</script>
    То что в фигурных скобках похоже на json. Его вытащить легко, но дальше ступор, не сталкивался с таким форматом представления данных.

    Я не пойму как вытащить упорядоченные данные в переменной gwFeature в квадратных скобках? Может кто подскажет?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.549
    Симпатии:
    1.431
    Не json это, а javascript объект http://javascript.ru/tutorial/object/intro

    То что в квадратных скобках - это массив, получиется через eval в JS
    Код:
    console.log(eval(peppyData.gwFeature));
    
     
  3. evova2

    evova2 Создатель

    Регистр.:
    13 ноя 2008
    Сообщения:
    11
    Симпатии:
    0
    Я паршу страничку. Этот код у меня в виде строки PHP

    Код:
    $data = '<script type="text/javascript">Что то</script>';
    Мне нужно разобрать переменную на составляющие и получить те данные что в квадратных скобках. Как это можно сделать?

    Js не интересует, нужно перегнать все в массив php для дальнейшей работы с данными.
     
  4. Cosmologist

    Cosmologist Писатель

    Регистр.:
    22 мар 2013
    Сообщения:
    2
    Симпатии:
    0
    php.net/preg_match
     
  5. KPACHODAP

    KPACHODAP DELETED

    Регистр.:
    21 дек 2009
    Сообщения:
    639
    Симпатии:
    111

    выводить можно значения по такому принципу что ниже проверено работает!


    Код:
    <?php
    $content = file_get_contents("test.htm"); // сюда занес вашу строчку от [ до ]
    $content = str_replace('[', '', $content);
    $content = str_replace(']', '', $content);
    $content = str_replace('\\', '', $content);
    $content = str_replace('"', '', $content);
     
     
    $cena = explode(',', $content);
     
     
    //пример вывода после 3-тей запятой значения, по такому принципу делать дальше!
    echo $cena[4];
     
     
    //echo $content;
     
     
     
     
    
    значений много поэтом показал пример токо!