2010-06-01 2 views
0

Я нашел этот пример исходный PHP-код на HTTP POST from PHP, without cURLИзменение Generic REST Helper PHP Пример кода для поддержки XML DOM

мне нужна помощь, изменяющее пример источника PHP для поддержки XML DOM для манипулирования REST API.

Я подумал, что если я обновлю заявление для отображения в разделе XML ниже от

$r = simplexml_load_string($res); 

в

$r = new DOMDocument(); 
$r->load($res); 

, что она будет работать, но это не так. . :(

Любая помощь будет оценена

function rest_helper($url, $params = null, $verb = 'GET', $format = 'xml') 
{ 
    $cparams = array(
    'http' => array(
     'method' => $verb, 
     'ignore_errors' => true 
    ) 
); 
    if ($params !== null) { 
    $params = http_build_query($params); 
    if ($verb == 'POST') { 
     $cparams['http']['content'] = $params; 
    } else { 
     $url .= '?' . $params; 
    } 
    } 

    $context = stream_context_create($cparams); 
    $fp = fopen($url, 'rb', false, $context); 
    if (!$fp) { 
    $res = false; 
    } else { 
    // If you're trying to troubleshoot problems, try uncommenting the 
    // next two lines; it will show you the HTTP response headers across 
    // all the redirects: 
    // $meta = stream_get_meta_data($fp); 
    // var_dump($meta['wrapper_data']); 
    $res = stream_get_contents($fp); 
    } 

    if ($res === false) { 
    throw new Exception("$verb $url failed: $php_errormsg"); 
    } 

    switch ($format) { 
    case 'json': 
     $r = json_decode($res); 
     if ($r === null) { 
     throw new Exception("failed to decode $res as json"); 
     } 
     return $r; 

    case 'xml': 
     $r = simplexml_load_string($res); 
     if ($r === null) { 
     throw new Exception("failed to decode $res as xml"); 
     } 
     return $r; 
    } 
    return $res; 
} 

ответ

0

Правильная форма:.

$r = new DOMDocument(); 
$r->loadXML($res); 

Смотрите документацию для DOMDocument::loadXML The DOMDocument::load() метод нагрузок из файла

+0

благодарственное Это исправлено! :) –