Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.02.2017
Сообщений: 3

PHP и JSON

14.02.2017, 00:59. Показов 698. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru