0

我想发送 xml 响应。我尝试了以下代码。但不打印数组元素,只打印“数组”。请告诉我我错在哪里?

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("video_link");

    try {   
        $query = "select * from upload_video";
        $result = mysql_query($query);

    }
    catch(Exception $ex) {

        $response = '<?xml version="1.0" encoding="utf-8"?>';
            $response .= '<response><status>'.'0'.'</status>';
        $response = $response.'<remarks>'.'Error'.'</remarks></response>';
        header("Content-type: text/xml; charset=utf-8");
        echo $response;
    }

    $n = mysql_num_rows($result);

    for($i=0; $i < $n; $i++) {
        $url = mysql_result($result,$i,'url');

        $store[] = array("url" => $url);     

            }

            $response = '<?xml version="1.0" encoding="utf-8"?>';
            $response .= '<response><status>'.'1'.'</status>';
        $response = $response.'<remarks>'.$store.'</remarks></response>';
        header("Content-type: text/xml; charset=utf-8");
        echo $response;

?>
4

1 回答 1

0

如果您希望列表项作为 XML 节点,请使用它来编写您认为合适的 XML,而不是 for 循环:

$list = "";
for($i=0; $i < $n; $i++) {
    $url = mysql_result($result,$i,'url');
    $list .= "<item>".$url."</item>";
 }

或者,如果逗号分隔列表就足够了,只需在 $store 数组上使用 implode:

$response = $response.'<remarks>'.implode(", ", $store).'</remarks></response>';
于 2013-09-25T13:22:48.553 回答