Есть такая строка кода:
ITowns.initialize({"groups":null,"towns":[{"id":80121,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-01","island_x":732,"island_y":694,"plenty":"wood","r are":"stone","has_conqueror":false,"researches":{"berth" :true,"conscription":true,"mathematics":true},"favor":500},{"id":78218,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-02","island_x":716,"island_y":708,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics&quo t;:true},"favor":500},{"id":57664,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-03","island_x":681,"island_y":706,"plenty":"stone","rare":"wood","has_conqueror":fa lse,"researches":{"berth":true,"conscription":true,"mathematics&qu ot;:true},"favor":500},{"id":46826,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-04","island_x":679,"island_y":703,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics&quo t;:true},"favor":500}.....
Из этой строки мне нужно выдернуть значения ID и NAME, перекодировать значение NAME в кириллицу и сохранить эти значения в переменные, для дальнейшего использования...
Не пойму как составить регулярку, потому что весь код огромный "id" и "name" встречается огромное количество раз, а мне нужно выдернуть значения именно из этой строчки...
Спустя 26 минут, 46 секунд (9.07.2012 - 19:47) pak написал(а):
\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-01
это кажется двухбайтовый юникод, где то я видел перевод, щас поищю
это кажется двухбайтовый юникод, где то я видел перевод, щас поищю
Спустя 5 минут, 30 секунд (9.07.2012 - 19:53) Игорь_Vasinsky написал(а):
file() - получил массив строк из файла
foreach() - перебор все элемент массива
substr_count() - поиск элемента массива, содержащего ITowns.initialize
запись этого элемента в переменную
json_decode() этой строки
потом перекодировать юникод (погугли - есть готовые функции)
foreach() - перебор все элемент массива
substr_count() - поиск элемента массива, содержащего ITowns.initialize
запись этого элемента в переменную
json_decode() этой строки
потом перекодировать юникод (погугли - есть готовые функции)
Спустя 1 минута, 16 секунд (9.07.2012 - 19:54) ArtemKrass написал(а):
Просто перевести не проблема... Как это сделать посредством PHP?
Спустя 1 минута, 43 секунды (9.07.2012 - 19:56) pak написал(а):
вот нашол перевод:
$a = '\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-01';
//1 способ
echo preg_replace('#\\\\u([0-9a-f]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',$a);
//2 способ
print_r( json_decode('["'.$a.'"]') );
Спустя 7 минут (9.07.2012 - 20:03) ArtemKrass написал(а):
Цитата (Игорь_Vasinsky @ 9.07.2012 - 16:53) |
file() - получил массив строк из файла foreach() - перебор все элемент массива substr_count() - поиск элемента массива, содержащего ITowns.initialize запись этого элемента в переменную json_decode() этой строки потом перекодировать юникод (погугли - есть готовые функции) |
А при помощи preg_match_all() нельзя?
Спустя 2 минуты, 18 секунд (9.07.2012 - 20:05) Игорь_Vasinsky написал(а):
можешь, ест-но можешь - но это же json формат. дело твоё.
Спустя 8 минут, 18 секунд (9.07.2012 - 20:13) pak написал(а):
у меня так получилось:
$str = 'ITowns.initialize({"groups":null,"towns":[{"id":80121,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-01","island_x":732,"island_y":694,"plenty":"wood","r are":"stone","has_conqueror":false,"researches":{"berth" :true,"conscription":true,"mathematics":true},"favor":500},{"id":78218,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-02","island_x":716,"island_y":708,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics& ;quo t;:true},"favor":500},{"id":57664,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-03","island_x":681,"island_y":706,"plenty":"stone","rare":"wood","has_conqueror":fa lse,"researches":{"berth":true,"conscription":true,"mathematics&am p;qu ot;:true},"favor":500},{"id":46826,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440-04","island_x":679,"island_y":703,"plenty":"iron","rare":"wood","has_conqueror":fal se,"researches":{"berth":true,"conscription":true,"mathematics& ;quo t;:true},"favor":500}';
$m = explode(',', $str);
foreach($m as $v)
{
if($p = strpos($v, 'id'))
{
$id[] = substr($v,$p+4);
}
elseif($p = strpos($v, 'name'))
{
$name[] = substr($v,$p+6);
}
}
echo '<br><br><pre>';
print_r($id);
echo '<br><br>';
print_r($name);
echo '</pre>';
Спустя 9 минут, 11 секунд (9.07.2012 - 20:23) ArtemKrass написал(а):
Работает!
Но $str может меняться... Т.е. "Id" и "Name" могут добавляться или уменьшаться. Т.е. мне нужно парсить именно код страницы...
Не могу понять как мне во всем коде найти именно эту строку
Но $str может меняться... Т.е. "Id" и "Name" могут добавляться или уменьшаться. Т.е. мне нужно парсить именно код страницы...
Не могу понять как мне во всем коде найти именно эту строку
Спустя 58 секунд (9.07.2012 - 20:24) Игорь_Vasinsky написал(а):
ITowns.initialize - только в этой строке в начале?
Спустя 41 минута, 42 секунды (9.07.2012 - 21:05) ArtemKrass написал(а):
Да
Спустя 2 минуты, 38 секунд (9.07.2012 - 21:08) Игорь_Vasinsky написал(а):
Цитата |
substr_count() - поиск элемента массива, содержащего ITowns.initialize |
Спустя 41 минута, 18 секунд (9.07.2012 - 21:49) ArtemKrass написал(а):
А как мне быть, если я страницу получаю при помощи Curl, т.е. ее содержимое оказывается в переменной...
foreach не работает в таком случае?
foreach не работает в таком случае?
Спустя 15 минут, 46 секунд (9.07.2012 - 22:05) ArtemKrass написал(а):
Например:
Получаю переменную с кодом страницы:
как быть дальше?
function requester($url, $post = 0, $cookies = '', $head = 1, $body = 0)
{
$cl = curl_init();
curl_setopt($cl, CURLOPT_URL, $url);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_HEADER, $head);
curl_setopt($cl, CURLOPT_COOKIE, $cookies);
curl_setopt($cl, CURLOPT_NOBODY, $body);
if ($post){
curl_setopt($cl, CURLOPT_POST, 1);
curl_setopt($cl, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest')); //иммитируем AJAX запрос
curl_setopt($cl, CURLOPT_POSTFIELDS, $post);
}
$line = curl_exec($cl);
curl_close($cl);
return $line;
}
Получаю переменную с кодом страницы:
$stranica = requester('ссылка ссылка ссылка', 0, $cook, 1, 0);
как быть дальше?
Спустя 2 минуты (9.07.2012 - 22:07) Игорь_Vasinsky написал(а):
уф... ну регуляркой выдерни этот нужный кусок то.
Спустя 30 секунд (9.07.2012 - 22:08) Игорь_Vasinsky написал(а):
можешь за несколько этапов распарсивать.
Спустя 8 часов, 20 минут, 1 секунда (10.07.2012 - 06:28) pak написал(а):
Цитата (ArtemKrass @ 9.07.2012 - 17:23) |
Работает! Но $str может меняться... Т.е. "Id" и "Name" могут добавляться или уменьшаться. Т.е. мне нужно парсить именно код страницы... Не могу понять как мне во всем коде найти именно эту строку |
это не проблема, добавки и посмотрите снова.
Спустя 2 часа, 42 минуты, 53 секунды (10.07.2012 - 09:10) ArtemKrass написал(а):
Как думаете правильно будет, если я при помощи
preg_match('#ITowns.initialize(.+)#', $ans, $vilages);
буду выдерать эту строку в переменную, а потом из этой переменной брать нужные мне значения?
У меня пока только на это мозга хватает...)))
preg_match('#ITowns.initialize(.+)#', $ans, $vilages);
буду выдерать эту строку в переменную, а потом из этой переменной брать нужные мне значения?
У меня пока только на это мозга хватает...)))
Спустя 47 минут, 3 секунды (10.07.2012 - 09:57) ArtemKrass написал(а):
В общем при помощи preg_match('#ITowns.initialize(.+)#', $ans, $vilages);
я забираю нужную мне строку в переменную.
Потом используя (СПАСИБО форумчанину PAK)
выбираю нужные значения.
$name выбирается правильно, а вот $id нет.
Создается массив из 4-х элементов... Три из которых мне вообще не нужны... Нужен только первый элемент...
Как же правильно сделать выборку?
я забираю нужную мне строку в переменную.
Потом используя (СПАСИБО форумчанину PAK)
$m = explode(',', $vilages[0]);
foreach($m as $v)
{
if($p = strpos($v, 'id'))
{
$id[] = substr($v,$p+4);
}
elseif($p = strpos($v, 'name'))
{
$name[] = substr($v,$p+6);
}
}
echo '<br><br><pre>';
print_r($id);
echo '<br><br>';
print_r($name);
echo '</pre>';
выбираю нужные значения.
$name выбирается правильно, а вот $id нет.
Создается массив из 4-х элементов... Три из которых мне вообще не нужны... Нужен только первый элемент...
Array
(
[0] => 51543
[1] => e left\">\n\t
\n\t\t
\n\t\t
<\/div><%\n\t\tvar active_group_id = ITowns.getActiveTownGroup().id
[2] =>
[3] => n groups) {\n\t\t\t\tif (groups.hasOwnProperty(id) && parseInt(id
[4] => = \"0\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\n\t\t\t\tsorted_list = ITowns.getSortedTownGroupMapByName(group.id);\n\t\t\t\t%>\n\n\t\t\t\t
<%= cssClass %>\">\n\t\t\t\t\t
\n\t\t\t\t\t\t<%= (group.id === null ? msg_keine_gruppe : group.name ) %><\/a>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t
\" class=\"town_group\">\n\t\t\t\t\t\t<% for (i = 0
[5] => "g<%= id %>_splitted<%= splitted %>\" class=\"town_group\">\n\t\t\t\t\t\t\t<%}%>\n\n\t\t\t\t\t\t\t
\">\n\t\t\t\t\t\t\t\t\"><%= ITowns.getTown(town.id).name %><\/a>\n\t\t\t\t\t\t\t\t<% if (group.id !== null) { %>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<% } %>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<% } %>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<% }\n\t\t%><\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>"});
)
Как же правильно сделать выборку?
Спустя 2 минуты, 51 секунда (10.07.2012 - 10:00) Игорь_Vasinsky написал(а):
пожалуйста.
Спустя 19 минут, 22 секунды (10.07.2012 - 10:20) pak написал(а):
ArtemKrass
покажите что находиться в $vilages[0]
покажите что находиться в $vilages[0]
Спустя 17 минут, 20 секунд (10.07.2012 - 10:37) ArtemKrass написал(а):
Цитата (pak @ 10.07.2012 - 07:20) |
ArtemKrass покажите что находиться в $vilages[0] |
ITowns.initialize({"groups":null,"towns":[{"id":51543,"name" :"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440","island_x":788,"island_y":648,"plenty":"iron","ra re":"wood","has_conqueror":false,"researches":{"berth":f alse,"conscription":false,"mathematics":false},"favor":500}],"tmpl":"
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
\n\t\t
<\/div><%\n\t\tvar active_group_id = ITowns.getActiveTownGroup().id, group,\n\t\t\tsorted_list, id, num_of_groups = 0, i, l, j, l2, town, splitted = 0,\n\t\t\tcssClass, msg_keine_gruppe = '\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442';\n\n\t\t\t\/* Determinate the number of the groups *\/\n\t\t\tfor (id in groups) {\n\t\t\t\tif (groups.hasOwnProperty(id) && parseInt(id, 10) !== 0) {\n\t\t\t\t\tnum_of_groups++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcssClass = num_of_groups == 1 ? 'case1' : 'case2';\n\n\t\t\tfor (j = 0, l2 = groups.length; j < l2; j++) {\n\t\t\t\tgroup = groups[j];\n\n\t\t\t\tif (!group || group.id == \"0\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\n\t\t\t\tsorted_list = ITowns.getSortedTownGroupMapByName(group.id);\n\t\t\t\t%>\n\n\t\t\t\t
<%= cssClass %>\">\n\t\t\t\t\t
\n\t\t\t\t\t\t<%= (group.id === null ? msg_keine_gruppe : group.name ) %><\/a>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t
\" class=\"town_group\">\n\t\t\t\t\t\t<% for (i = 0, l = sorted_list.length; i < l; i++) {\n\t\t\t\t\t\t\ttown = group.towns[sorted_list[i]];\n\n\t\t\t\t\t\t\tif (num_of_groups == 1 && i > 0 && i%25 == 0) {\n\t\t\t\t\t\t\t\tsplitted++; %>\n\t\t\t\t\t\t\t\t<\/ul>
_splitted<%= splitted %>\" class=\"town_group\">\n\t\t\t\t\t\t\t<%}%>\n\n\t\t\t\t\t\t\t
\">\n\t\t\t\t\t\t\t\t\"><%= ITowns.getTown(town.id).name %><\/a>\n\t\t\t\t\t\t\t\t<% if (group.id !== null) { %>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<% } %>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<% } %>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<% }\n\t\t%><\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>"});
Спустя 35 минут, 3 секунды (10.07.2012 - 11:12) pak написал(а):
Свернутый текст
ITowns.initialize({"groups":null,"towns":[{"id":51543,"name" :"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440","island_x":788,"island_y":648,"plenty":"iron","ra re":"wood","has_conqueror":false,"researches":{"berth":f alse,"conscription":false,"mathematics":false},"favor":500}],"tmpl":"
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
\n\t\t
<\/div><%\n\t\tvar active_group_id = ITowns.getActiveTownGroup().id, group,\n\t\t\tsorted_list, id, num_of_groups = 0, i, l, j, l2, town, splitted = 0,\n\t\t\tcssClass, msg_keine_gruppe = '\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442';\n\n\t\t\t\/* Determinate the number of the groups *\/\n\t\t\tfor (id in groups) {\n\t\t\t\tif (groups.hasOwnProperty(id) && parseInt(id, 10) !== 0) {\n\t\t\t\t\tnum_of_groups++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcssClass = num_of_groups == 1 ? 'case1' : 'case2';\n\n\t\t\tfor (j = 0, l2 = groups.length; j < l2; j++) {\n\t\t\t\tgroup = groups[j];\n\n\t\t\t\tif (!group || group.id == \"0\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\n\t\t\t\tsorted_list = ITowns.getSortedTownGroupMapByName(group.id);\n\t\t\t\t%>\n\n\t\t\t\t
<%= cssClass %>\">\n\t\t\t\t\t
\n\t\t\t\t\t\t<%= (group.id === null ? msg_keine_gruppe : group.name ) %><\/a>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t
\" class=\"town_group\">\n\t\t\t\t\t\t<% for (i = 0, l = sorted_list.length; i < l; i++) {\n\t\t\t\t\t\t\ttown = group.towns[sorted_list[i]];\n\n\t\t\t\t\t\t\tif (num_of_groups == 1 && i > 0 && i%25 == 0) {\n\t\t\t\t\t\t\t\tsplitted++; %>\n\t\t\t\t\t\t\t\t<\/ul>
_splitted<%= splitted %>\" class=\"town_group\">\n\t\t\t\t\t\t\t<%}%>\n\n\t\t\t\t\t\t\t
\">\n\t\t\t\t\t\t\t\t\"><%= ITowns.getTown(town.id).name %><\/a>\n\t\t\t\t\t\t\t\t<% if (group.id !== null) { %>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<% } %>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<% } %>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<% }\n\t\t%><\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>"});
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
\n\t\t
<\/div><%\n\t\tvar active_group_id = ITowns.getActiveTownGroup().id, group,\n\t\t\tsorted_list, id, num_of_groups = 0, i, l, j, l2, town, splitted = 0,\n\t\t\tcssClass, msg_keine_gruppe = '\u0413\u0440\u0443\u043f\u043f\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442';\n\n\t\t\t\/* Determinate the number of the groups *\/\n\t\t\tfor (id in groups) {\n\t\t\t\tif (groups.hasOwnProperty(id) && parseInt(id, 10) !== 0) {\n\t\t\t\t\tnum_of_groups++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcssClass = num_of_groups == 1 ? 'case1' : 'case2';\n\n\t\t\tfor (j = 0, l2 = groups.length; j < l2; j++) {\n\t\t\t\tgroup = groups[j];\n\n\t\t\t\tif (!group || group.id == \"0\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\n\t\t\t\tsorted_list = ITowns.getSortedTownGroupMapByName(group.id);\n\t\t\t\t%>\n\n\t\t\t\t
<%= cssClass %>\">\n\t\t\t\t\t
\n\t\t\t\t\t\t<%= (group.id === null ? msg_keine_gruppe : group.name ) %><\/a>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t
\" class=\"town_group\">\n\t\t\t\t\t\t<% for (i = 0, l = sorted_list.length; i < l; i++) {\n\t\t\t\t\t\t\ttown = group.towns[sorted_list[i]];\n\n\t\t\t\t\t\t\tif (num_of_groups == 1 && i > 0 && i%25 == 0) {\n\t\t\t\t\t\t\t\tsplitted++; %>\n\t\t\t\t\t\t\t\t<\/ul>
_splitted<%= splitted %>\" class=\"town_group\">\n\t\t\t\t\t\t\t<%}%>\n\n\t\t\t\t\t\t\t
\">\n\t\t\t\t\t\t\t\t\"><%= ITowns.getTown(town.id).name %><\/a>\n\t\t\t\t\t\t\t\t<% if (group.id !== null) { %>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<% } %>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<% } %>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<% }\n\t\t%><\/div>\n\t<\/div>\n<\/div>\n
\n\t
\n\t\t
<\/div>\n\t<\/div>\n<\/div>"});
из этого вам нужны только данные из первой строчки, т е из этой:
ITowns.initialize({"groups":null,"towns":[{"id":51543,"name" :"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440","island_x":788,"island_y":648,"plenty":"iron","ra re":"wood","has_conqueror":false,"researches":{"berth":f alse,"conscription":false,"mathematics":false},"favor":500}],"tmpl":"
???
Спустя 1 час, 50 минут, 7 секунд (10.07.2012 - 13:02) ArtemKrass написал(а):
да, все, что находится до "tmpl"
Спустя 20 минут, 40 секунд (10.07.2012 - 13:23) pak написал(а):
$m = explode(',', $vilages[0]);
foreach($m as $v)
{
echo $v.'<br>';
if($p = strpos($v, '"id"'))
{
$id[] = substr($v,$p+5);
}
elseif($p = strpos($v, 'name"'))
{
$name[] = substr($v,$p+7);
}
}
echo '<br><br><pre>';
print_r($id);
echo '<br><br>';
print_r($name);
echo '</pre>';
будет работать при условии если в $vilages[0] первая строчка будет похожа
Спустя 21 минута, 47 секунд (10.07.2012 - 13:45) ArtemKrass написал(а):
Работает!
Нашел тут еще информацию о json_decode
Можно ли с помощью него передать значения массива в переменные? В мануале написано что он возвращает данные JSON преобразованные в соответствующие типы PHP...
т.е. он все правильно выводит, но как присвоить этим значениям переменные я не пойму...
Нашел тут еще информацию о json_decode
Можно ли с помощью него передать значения массива в переменные? В мануале написано что он возвращает данные JSON преобразованные в соответствующие типы PHP...
т.е. он все правильно выводит, но как присвоить этим значениям переменные я не пойму...
Спустя 1 час, 54 минуты, 3 секунды (10.07.2012 - 15:39) Игорь_Vasinsky написал(а):
не понял. что правильно выводит? какие значения в переменную?
Спустя 19 минут, 6 секунд (10.07.2012 - 15:58) ArtemKrass написал(а):
Что-то не получается у меня в json_decode разобраться.
Правильно ли я делаю???
Вот есть у меня JSON строка:
Для пробы делаю так:
А он мне ничего не выводит...
Правильно ли я делаю???
Вот есть у меня JSON строка:
{"groups":null,"towns":[{"id":51543,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440","island_x":788,"island_y":648,"plenty":"iron","ra re":"wood","has_conqueror":false,"researches":{"berth":f alse,"conscription":false,"mathematics":false},"favor":500}]}
Для пробы делаю так:
<?php
$json = '{"groups":null,"towns":[{"id":51543,"name":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440","island_x":788,"island_y":648,"plenty":"iron","ra re":"wood","has_conqueror":false,"researches":{"berth":f alse,"conscription":false,"mathematics":false},"favor":500}]}';
$obj = json_decode($json);
print $obj->{'id'};
?>
А он мне ничего не выводит...
Спустя 11 минут, 5 секунд (10.07.2012 - 16:09) Игорь_Vasinsky написал(а):
не верный Json ФОРМАТ
Цитата |
Имя должно обрамляться в двойные кавычки |
Цитата |
"groups":null "berth":f alse |
И ПРОЧЕЕ
Спустя 3 дня, 2 часа, 54 минуты, 55 секунд (13.07.2012 - 19:04) ArtemKrass написал(а):
Значит json_decode мне не поможет? Я же не могу переделать ответ сервера...