0

APIトークンでcurlを使用し、XML要素を作業変数に取得するか、少なくともhtml形式で表示します。

以下は、vardump を実行するために使用されるコードです。

$curl = curl_init('https://mywebsite.highrisehq.com/people.xml');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERPWD,'myapitoken12345:x');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$data = curl_exec($curl);
curl_close($curl);  

$people_xml = new SimpleXMLElement($data);
var_dump($people_xml);

var_dump を実行するときの出力は、私がよく知っているものではありません。

object(SimpleXMLElement) #1 (2) { 
["@attributes"]=> array(1) { 
["type"]=> string(5) "array" } 
["person"]=> array(128) { ...  etc. etc. etc...

要素を取得する方法の手がかりとして、HighriseHQ.com が示す XML 構造は次のようになります。

<people type="array">
  <person>
  <first-name>John</first-name>
  </person>
  <person>
  <first-name>Jane</first-name>
  </person>
</people>
  .... etc. etc.

$people = simplexml_load_string($xml);という部分を、使用できる変数にどのように、またはどこで変換しますか? 最終的には、Web サイトのデータベースを highrise と同期するので、それらの人々を表示、編集、または保存して、メモや連絡先が古くならないようにしたいと考えています。

4

1 に答える 1

0

解決策を見つけました。

$curl = curl_init('https://my_website_goes_here.highrisehq.com/people.xml');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, 'my_api_token_goes_here:x');

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$data = curl_exec($curl);
curl_close($curl);

$people_xml = new SimpleXMLElement($data);

foreach($people_xml->person as $person) {
    echo "<strong>" . $person->{'first-name'} . " " . $person->{'last-name'} . "</strong><br />";
    echo "Title: " . $person->{'title'} . "<br />";
    echo "Background: " . $person->{'background'} . "<br />";
    echo "Email: " . $person->{'email-address'} . "<br />";
    echo "ID: " . $person->id . "<br /><br />";
}
于 2013-02-23T21:23:52.657 に答える