Я пытаюсь прочитать Raven SEO Tools API. Это REST API, и в настоящее время он обслуживает резервное копирование данных как XML (или JSON, если я выбираю), когда я просто запрашиваю URL-адрес через веб-браузер. Каков наилучший способ получить ответ со своего сервера на мой собственный PHP-скрипт, чтобы я мог поиграть с ним.
Любая помощь очень ценится
ура
Если вам нужно только получить URL-адрес и проанализировать его информацию. Самый простой способ – комбинация curl / JSON. Обратите внимание, что разбор JSON быстрее, чем синтаксический анализ XML.
Что-то простое:
$url = "http://api.raventools.com/api?key=B1DFC59CA6EC76FF&method=domains&format=json"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4); $json = curl_exec($ch); if(!$json) { echo curl_error($ch); } curl_close($ch); print_r(json_decode($json));
Но если вам нужно вызвать другие методы из этого API, такие как DELETE / PUT и т. Д. Тогда для того, чтобы клиент REST на PHP был более изящным решением. Сравнение этих клиентов можно найти в PHP REST Clients
Я основал этот код специально для API Raven https://github.com/stephenyeargin/raventools-api-php
Образец кода:
require 'path/to/raventools-api-php/raventools-api-php.class.php'; $Raven = new RavenTools( 'B1DFC59CA6EC76FF' ); $method = 'domains'; $options = array('format'=> 'json'); $responseString = $Raven->getJSON($method, $options); print_r(json_decode($responseString));
завивать
cUrl – инструмент командной строки для получения или отправки файлов с использованием синтаксиса URL.
curl -o example.html www.example.com
file_get_contents
<?php $homepage = file_get_contents('http://www.example.com/api/parameters'); echo $homepage; ?>
Класс HTTPRequest от Pecl – очень хороший клиент, я использовал его для нескольких проектов. http://pecl.php.net/package/pecl_http
Еще одним довольно крутым клиентом является клиент Buzz https://github.com/kriswallsmith/Buzz. Он также отлично сочетается с Symfony2, если это вас интересует 🙂
Вы можете использовать любой из них, но я думаю, что JSON является самым простым и беспроблемным, если вы не используете SimpleXML. Решение зависит от сложности ваших данных.
Учитывая, что JSON, возвращаемый API, действителен, вы можете преобразовать его в массив или объект с помощью функции json_decode () PHP.
<?php # retrieve JSON from API here... # ie it is stored in $data as a string $object = json_decode($data); $array = json_decode($data, true); ?>
В SimpleXML это будет следующим:
<?php $object = simplexml_load_string($data); ?>