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

PHP и JSON

14.02.2017, 00:59. Показов 504. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2017, 00:59
Ответы с готовыми решениями:

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

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

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

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

5
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
14.02.2017, 10:19 2
Всегда просматривайте данные через 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  [ТС] 3
Спасибо,разобрался с той частью кода, но у меня еще вопрос,

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","clientTransferProhibited https://icann.org/epp#clientTransferProhibited","clientUpdateProhibited https://icann.org
/epp#clientUpdateProhibited","serverDeleteProhibited https://icann.org
/epp#serverDeleteProhibited","serverTransferProhibited https://icann.org/epp#serverTransferProhibited","serverUpdateProhibited 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":"googl e.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
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
14.02.2017, 14:40 4
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  [ТС] 5
впринципе было бы понятно как работать дальше(вывод по ключу массива), но как прописать вывод тех или иных параметров если в 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
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
15.02.2017, 16:26 6
Цитата Сообщение от myspace Посмотреть сообщение
почему вернулся ассоциативный массив вместо std object
Потому, что там массив неассоциативный, в виде объекта он не возвращается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2017, 16:26

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...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.