PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: некоректно отображается json ответ
Поиск в теме | Версия для печати
myspase
Отправлено: 13 Февраля, 2017 - 23:48:15
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2017
Помог: 0 раз(а)
Всем привет,
получаю 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 ничего не дали, скобки либо не заменяются либо просто белая страница отображается, мой код
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
$content = file_get_contents ( 'https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=google.com' ) ; $updated = $JSON -> data -> { 'google.com' } -> full_whois ;
echo $asd ;
?>
в чем может быть причина?
myspase
Отправлено: 14 Февраля, 2017 - 13:05:34
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2017
Помог: 0 раз(а)
Спасибо, получилось,но теперь есть другая проблема в обьектах dns_records и domain_status
кажется json_decode не декодировал их и вывод получается неправильный, пробовал решить проблему таким образом
но ничего не вышло, ниже примеры вывода
domain_status:
["clientDeleteProhibited https://icann[dot]org
/epp#clientDeleteProhibited","clientTransferProhibited https://icann[dot]org/epp#clientTran[dot][dot][dot]UpdateProhibited https://icann[dot]org
/epp#clientUpdateProhibited","serverDeleteProhibited https://icann[dot]org
/epp#serverDeleteProhibited","serverTransferProhibited https://icann[dot]org/epp#serverTran[dot][dot][dot]UpdateProhibited https://icann.org/epp#serverUpdateProhibited"]
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"},
может,нужно иначе выводить эти обьекты?
teleoperator27
Отправлено: 14 Февраля, 2017 - 14:40:27
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
полагаю, его тоже надо разобрать
PHP:
скопировать код в буфер обмена
//$updated = htmlspecialchars_decode($json->data->{'google.com'}->full_whois);
$dns_records = json_decode ( $json -> data -> { 'google.com' } -> dns_records ) ;
echo '<pre>' ;
echo '</pre>' ;
myspase
Отправлено: 14 Февраля, 2017 - 16:19:11
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2017
Помог: 0 раз(а)
а как быть если в dns_records и domain_status может содержатся информация допустим с другого ресурса(к примеру ok.ru),тогда вывод типа
не получится как как для разных запросов будет возвращатся разное количество данных
к примеру
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" } } }
как же все-таки отображать эту информацию в корректном виде?(в случае как c full_whois)
teleoperator27
Отправлено: 14 Февраля, 2017 - 16:20:41
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
ну а если домен еще до запроса урла в переменную загнать и ее подставлять в процессе?
(Добавление)
ну, не прокатит наверное
(Добавление)
Я, может, не так понял понял проблему, но все нормально выводится
PHP:
скопировать код в буфер обмена
$url = "ok.ru" ;
$content = file_get_contents ( 'https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=' . $url ) ;
echo '<pre>' ;
echo '</pre>' ;
echo "<hr>" ;
echo '<pre>' ;
echo '</pre>' ;
echo "<hr>" ;
$dns_records = json_decode ( $json -> data -> { $url } -> dns_records ) ;
echo '<pre>' ;
echo '</pre>' ;
myspase
Отправлено: 14 Февраля, 2017 - 17:05:28
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2017
Помог: 0 раз(а)
Я скорее всего неправильно выразился, с самим выводом уже проблем нет, допустим я хочу прикрутить кнопку на сайте, которая будет передавать в GET сам url и будет выводится информация о домене, под удобочитаемым видом я имел ввиду отображение вывода на старнице без скобок,надписей Array и тд
например вот так
host: ok.ru
class: IN
ttl: 85
type: A
ip: 217.20.147.94
а не вот так
Array
(
[0] => stdClass Object
(
[host] => ok.ru
[class] => IN
[ttl] => 85
[type] => A
[ip] => 217.20.147.94
)
я понимаю, что можно вывести элемент обьекта(допустим [host]) таким образом
и как по всем интересующим меня пунктам,но это будет работать только для одного конкретного сайта, так как для google эти записи в обьекте будут отличаться и они просто не выведутся или приведут к ошибке
teleoperator27
Отправлено: 14 Февраля, 2017 - 17:49:46
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
print_r не для того, что бы выводить информацию на сайт, а для отладки. Что бы разработчик мог посмотреть, "что внутри". А foreach он и в африке foreach
PHP:
скопировать код в буфер обмена
$url = "ok.ru" ;
$content = file_get_contents ( 'https://www.domaintally.com/api/v1/whois?access_token=bfb4f4f431f1f366fcff9b30b78fe5d67ee20e97&domain=' . $url ) ;
$dns_records = json_decode ( $json -> data -> { $url } -> dns_records ) ;
foreach ( $dns_records as $key => $value ) {
echo '<hr>' ;
foreach ( $value as $k => $v ) {
echo $k . ' = ' . $v . '<br>' ;
}
}
hr и br я для наглядности вставил
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB