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

PHP и JSON

14.02.2017, 00:59. Показов 720. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru