0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 3

PHP и JSON

14.02.2017, 00:59. Показов 734. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет,
получаю JSON ответ от сервера,обработав ответ в браузере выводится текст без переноса строки с тегами <br/> в виде текста,пример ниже

google.com<br/>Registry Domain ID: 2138514_DOMAIN_COM-VRSN< br/>Registrar WHOIS Server: whois.markmonitor.com< br/>Registrar URL: markmonitor.com<; br/>Updated Date: 2015-06-12T10:38:52-0700< br/>

было решено воспользоватся функцией preg_replace где заменил <br/> на тот же <br/>
перенос удалось получить, но в конце и начале подстроки остались угловые скобки

Domain Name: google.com<
>Registry Domain ID: 2138514_DOMAIN_COM-VRSN<
>Registrar WHOIS Server: whois.markmonitor.com<
>Registrar URL: http://www.markmonitor.com<
>Updated Date: 2015-06-12T10:38:52-0700<
>Creation Date: 1997-09-15T00:00:00-0700<
>Registrar Registration Expiration Date: 2020-09-13T21:00:00-0700<
>Registrar: MarkMonitor, Inc.<
>Registrar IANA ID: 292<

последующие манипуляции со str_replace или preg_replace ничего не дали, скобки либо не заменяются либо просто белая страница отображается, мой код

PHP
1
2
3
4
5
6
7
<?php
$content = file_get_contents('https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=google.com');
$JSON = json_decode($content);
$updated = $JSON->data->{'google.com'}->full_whois;
$asd =  preg_replace('<br/>','<br/>',"$updated");
echo $asd;
?>
в чем может быть причина?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2017, 00:59
Ответы с готовыми решениями:

PHP json_decode (json или не json)
Третий день ломаю голову над вопросом: API вконтакте возвращает массив в json (как я полагаю) - вроде похоже на json Вот строка: ...

Php!? Передача json в php
почему такой код не срабатывает: &lt;?php include(&quot;includer.php&quot;); $razdel = json_decode($_POST); print_r($razdel); ...

PHP скрипт -> Json -> выбор пользователя -> AJAX -> первоначальный PHP скрипт
Доброго времени суток! Я новичек вэб программировании, так что прошу строго не судить(в гугле ответа не нашел). Есть задача: ...

5
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
14.02.2017, 10:19
Всегда просматривайте данные через var_dump а не echo в браузере
Данные приходят с закодированными html сущностями.
Вот так можно раскодировать и тег br который уже есть в ответе отлично отобразится
PHP
1
2
3
4
$content = file_get_contents('https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=google.com');
$JSON = json_decode($content);
$updated = $JSON->data->{'google.com'}->full_whois;
echo html_entity_decode($updated);
Добавлено через 24 секунды
Цитата Сообщение от myspace Посмотреть сообщение
в чем может быть причина?
в &lt; и &gt;
1
0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 3
14.02.2017, 13:47  [ТС]
Спасибо,разобрался с той частью кода, но у меня еще вопрос,

PHP
1
2
3
4
$domain_status = $JSON->data->{'google.com'}->domain_status;
$domain_status = html_entity_decode($domain_status);
$domain_status = stripslashes($domain_status);
echo $domain_status;
такое впечетление что json_decode не до конца декодировал этот обьект(domain_status), и не смотря на декодирование спец символов и удаление слэшей вывод всеравно кривой, возможно в этом случае нужно выводить по другому?

вот вывод

["clientDeleteProhibited https://icann.org
/epp#clientDeleteProhibited","clientTrans ferProhibited https://icann.org/epp#clientTransferProhibited","clientUpd ateProhibited https://icann.org
/epp#clientUpdateProhibited","serverDelet eProhibited https://icann.org
/epp#serverDeleteProhibited","serverTrans ferProhibited https://icann.org/epp#serverTransferProhibited","serverUpd ateProhibited https://icann.org/epp#serverUpdateProhibited"]

Добавлено через 8 минут
добавлю так же что непонятный вывод присутствует и в dns_records

[{"host":"google.com","class":"IN","ttl": "227","type":"A","ip":"172.217.22.14"},{ "host":"google.com","class":"IN","ttl":" 53759","type":"NS","target":"ns3.google. com"},{"host":"google.com","class":"IN", "ttl":"53759","type":"NS","target":"ns2. google.com"},{"host":"google.com","class ":"IN","ttl":"53759","type":"NS","target ":"ns4.google.com"},{"host":"google.com" ,"class":"IN","ttl":"53759","type":"NS", "target":"ns1.google.com"},
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
14.02.2017, 14:40
domain_status - это json строка, её надо еще раз декодировать
PHP
1
2
3
4
$content = file_get_contents('https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=google.com');
$JSON = json_decode($content);
$domain_status = json_decode($JSON->data->{'google.com'}->domain_status);
var_dump($domain_status);
Добавлено через 28 секунд
dns_records аналогично
0
0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 3
14.02.2017, 17:02  [ТС]
впринципе было бы понятно как работать дальше(вывод по ключу массива), но как прописать вывод тех или иных параметров если в dns_records и domain _status ключ->значение не совпадает и варьируется в зависимости от запроса - к google это одно количество выводимой информации а в ok_ru другие, c обьектом full_whois таких проблем нет,поэтому не могу сообразить как все же корректно вывести эту информацию в удобочитаемом виде,вне зависимости от запроса?
пример:
domain_status google.com (кстати почему вернулся ассоциативный массив вместо std object? json_decode без параметра true)
Кликните здесь для просмотра всего текста
array(6) { [0]=> string(67) "clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited" [1]=> string(71) "clientTransferProhibited https://icann.org/epp#clientTransferProhibited" [2]=> string(67) "clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited" [3]=> string(67) "serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited" [4]=> string(71) "serverTransferProhibited https://icann.org/epp#serverTransferProhibited" [5]=> string(67) "serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited" }

domain_status ok.ru
Кликните здесь для просмотра всего текста
""REGISTERED,DELEGATED,VERIFIED""

dns_records google.com (возвращает std object)
Кликните здесь для просмотра всего текста
array(13) { [0]=> object(stdClass)#5 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "227" ["type"]=> string(1) "A" ["ip"]=> string(13) "172.217.22.14" } [1]=> object(stdClass)#6 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(5) "53759" ["type"]=> string(2) "NS" ["target"]=> string(14) "ns3.google.com" } [2]=> object(stdClass)#7 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(5) "53759" ["type"]=> string(2) "NS" ["target"]=> string(14) "ns2.google.com" } [3]=> object(stdClass)#8 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(5) "53759" ["type"]=> string(2) "NS" ["target"]=> string(14) "ns4.google.com" } [4]=> object(stdClass)#9 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(5) "53759" ["type"]=> string(2) "NS" ["target"]=> string(14) "ns1.google.com" } [5]=> object(stdClass)#10 (11) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(2) "33" ["type"]=> string(3) "SOA" ["mname"]=> string(14) "ns2.google.com" ["rname"]=> string(20) "dns-admin.google.com" ["serial"]=> string(9) "137498140" ["refresh"]=> string(3) "900" ["retry"]=> string(3) "900" ["expire"]=> string(4) "1800" ["minimum-ttl"]=> string(2) "60" } [6]=> object(stdClass)#11 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "584" ["type"]=> string(2) "MX" ["pri"]=> string(2) "40" ["target"]=> string(23) "alt3.aspmx.l.google.com" } [7]=> object(stdClass)#12 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "584" ["type"]=> string(2) "MX" ["pri"]=> string(2) "10" ["target"]=> string(18) "aspmx.l.google.com" } [8]=> object(stdClass)#13 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "584" ["type"]=> string(2) "MX" ["pri"]=> string(2) "20" ["target"]=> string(23) "alt1.aspmx.l.google.com" } [9]=> object(stdClass)#14 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "584" ["type"]=> string(2) "MX" ["pri"]=> string(2) "30" ["target"]=> string(23) "alt2.aspmx.l.google.com" } [10]=> object(stdClass)#15 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(3) "584" ["type"]=> string(2) "MX" ["pri"]=> string(2) "50" ["target"]=> string(23) "alt4.aspmx.l.google.com" } [11]=> object(stdClass)#16 (6) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(4) "2177" ["type"]=> string(3) "TXT" ["txt"]=> string(35) "v=spf1 include:_spf.google.com ~all" ["entries"]=> array(1) { [0]=> string(35) "v=spf1 include:_spf.google.com ~all" } } [12]=> object(stdClass)#17 (5) { ["host"]=> string(10) "google.com" ["class"]=> string(2) "IN" ["ttl"]=> string(2) "52" ["type"]=> string(4) "AAAA" ["ipv6"]=> string(24) "2a00:1450:4001:81a::200e" } }

dns_records ok.ru
Кликните здесь для просмотра всего текста

array(14) { [0]=> object(stdClass)#5 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(85) ["type"]=> string(1) "A" ["ip"]=> string(13) "217.20.147.94" } [1]=> object(stdClass)#6 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(85) ["type"]=> string(1) "A" ["ip"]=> string(14) "217.20.156.159" } [2]=> object(stdClass)#7 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(85) ["type"]=> string(1) "A" ["ip"]=> string(13) "217.20.155.58" } [3]=> object(stdClass)#8 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(2) "NS" ["target"]=> string(20) "ns2.odnoklassniki.ru" } [4]=> object(stdClass)#9 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(2) "NS" ["target"]=> string(20) "ns1.odnoklassniki.ru" } [5]=> object(stdClass)#10 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(2) "NS" ["target"]=> string(20) "ns4.odnoklassniki.ru" } [6]=> object(stdClass)#11 (5) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(2) "NS" ["target"]=> string(20) "ns3.odnoklassniki.ru" } [7]=> object(stdClass)#12 (11) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(3) "SOA" ["mname"]=> string(20) "ns1.odnoklassniki.ru" ["rname"]=> string(27) "hostmaster.odnoklassniki.ru" ["serial"]=> int(2015081300) ["refresh"]=> int(10800) ["retry"]=> int(1800) ["expire"]=> int(2419200) ["minimum-ttl"]=> int(300) } [8]=> object(stdClass)#13 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3293) ["type"]=> string(2) "MX" ["pri"]=> int(10) ["target"]=> string(11) "mail0.ok.ru" } [9]=> object(stdClass)#14 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3293) ["type"]=> string(2) "MX" ["pri"]=> int(30) ["target"]=> string(11) "mail2.ok.ru" } [10]=> object(stdClass)#15 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3293) ["type"]=> string(2) "MX" ["pri"]=> int(20) ["target"]=> string(11) "mail1.ok.ru" } [11]=> object(stdClass)#16 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(3) "TXT" ["txt"]=> string(93) "v=spf1 ip4:217.20.144.0/20 ip4:89.111.19.0/24 ip4:188.93.58.115/32 ip4:217.69.129.234/32 ~all" ["entries"]=> array(1) { [0]=> string(93) "v=spf1 ip4:217.20.144.0/20 ip4:89.111.19.0/24 ip4:188.93.58.115/32 ip4:217.69.129.234/32 ~all" } } [12]=> object(stdClass)#17 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(3) "TXT" ["txt"]=> string(37) "yandex-verification: 72c290082879917b" ["entries"]=> array(1) { [0]=> string(37) "yandex-verification: 72c290082879917b" } } [13]=> object(stdClass)#18 (6) { ["host"]=> string(5) "ok.ru" ["class"]=> string(2) "IN" ["ttl"]=> int(3599) ["type"]=> string(3) "TXT" ["txt"]=> string(68) "google-site-verification=Ulruf8YYkR5p9-2klauDQNcJNSXgLzqmpqZuu3btFzE" ["entries"]=> array(1) { [0]=> string(68) "google-site-verification=Ulruf8YYkR5p9-2klauDQNcJNSXgLzqmpqZuu3btFzE" } } }
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
15.02.2017, 16:26
Цитата Сообщение от myspace Посмотреть сообщение
почему вернулся ассоциативный массив вместо std object
Потому, что там массив неассоциативный, в виде объекта он не возвращается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2017, 16:26
Помогаю со студенческими работами здесь

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException'...

Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт
Здравствуйте. Разрабатываю интернет-магазин на Java. Мне нужно на фронте получить список товаров из базы данных для отображения на...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Дополнительные сведения: Cannot deserialize the current JSON object (e.g. {&quot;name&quot;:&quot;value&quot;}) into type 'System.Collections.Generic.List`1'...

php и json
есть веб страничка, на которой динамический json код, даже исходный код этой странички без единого тега, просто json код, вот примерно...

Json + php
Доброе утро. мне нужно из php отправить массив данных. а js принять. Сейчас я принимаю данные как текст xhr.onload =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru