xml ilanı

3 Cevap php

i basit php kodu kullanarak, bir url bir xml belgeyi yayınlamak istiyorum.

i bir javascript kodu var ama javascript çapraz etki alanı destek olmaz, bu yüzden ben sadece php ile yapmak istiyorum.

biri bana desteklemek için bunun için bir kod var ...

3 Cevap

SimpleXML bir göz atın: http://us2.php.net/simplexml

PHP HTTP mesajlaşma işleme pecl HTTP classes ile oldukça basittir.

Örneğine size vermek istediğiniz bir HTTP request (bir istemci-> sunucu mesajdır). Neyse ki HttpRequest::setPostFiles bir HTTP isteğinde dosya içeriği dahil sürecini kolaylaştırır. Özellikler için PHP kılavuzu sayfası (önceki link) bakın.

Ne yazık HTTP sınıflar için manuel sayfaları ayrıntılar üzerinde biraz seyrek ve bunun için argümanlar HttpRequest::setPostFiles ne olması gerektiğini tam olarak belli değil, ama aşağıdaki kod başlamak gerekir:

$request = new HttpRequest(HttpMessage::HTTP_METH_POST);
$request->setPostFiles(array($file));

$response = $request->send();  // $response should be an HttpMessage object

Için manuel HttpRequest::setPostFiles Bu yöntemin tek bir argüman göndermek için dosyaları bir dizi olduğunu belirtiyor. Bu, belirsiz ve yerel dosya adları, dosya kolları bir dizi ya da dosya içeriğini bir dizi bir dizi anlamına gelebilir. Bu doğru olduğunu anlamaya uzun sürmez!

İşte akışları kullanır ve PECL'de dayanmaz bir örnek.

// Simulate server side
if (isset($_GET['req'])) {
    echo htmlspecialchars($_POST['data']);
    exit();
}

/**
 * Found at: http://netevil.org/blog/2006/nov/http-post-from-php-without-curl
 */
function do_post_request($url, $data, $optional_headers = null)
{
    $params = array('http' => array('method'  => 'POST',
                                    'content' => $data));

    if ($optional_headers !== null) {
        $params['http']['header'] = $optional_headers;
    }
    $ctx = stream_context_create($params);
    $fp = @fopen($url, 'rb', false, $ctx);
    if (!$fp) {
        throw new Exception("Problem with $url, $php_errormsg");
    }
    $response = @stream_get_contents($fp);
    if ($response === false) {
        throw new Exception("Problem reading data from $url, $php_errormsg");
    }
    return $response;
}

// Example taken from: http://en.wikipedia.org/wiki/XML
// (Of course, this should be filled with content from an external file using
// file_get_contents() or something)
$xml_data = <<<EOF
 <?xml version="1.0" encoding='ISO-8859-1'?>
 <painting>
  <img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
  <caption>This is Raphael's "Foligno" Madonna, painted
           in <date>1511</date>-<date>1512</date>.</caption>
 </painting>
EOF;

// Request is sent to self (same file) to keep all data 
// for the example in one file
$ret = do_post_request(
    'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . '?req',
    'data=' . urlencode($xml_data));

echo $ret;