Php fgets获取的订单数据

Php fgets获取的订单数据,php,Php,我这里有一个脚本,用于从shoutcast获取数据 $fp = @fsockopen("$host", $port, &$errno, &$errstr, 30); fputs($fp,"GET /admin.cgi?pass=jkl&mode=viewxml HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); echo '<pre>'; while(!feof($fp)) {

我这里有一个脚本,用于从shoutcast获取数据

$fp = @fsockopen("$host", $port, &$errno, &$errstr, 30);
fputs($fp,"GET /admin.cgi?pass=jkl&mode=viewxml HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
echo '<pre>';

while(!feof($fp)) {
    echo fgetss($fp);

}

fclose($fp); 
$fp=@fsockopen($host“,$port,&$errno,&$errstr,30);
fputs($fp,“GET/admin.cgi?pass=jkl&mode=viewxmlhttp/1.0\r\n用户代理:XML Getter(与Mozilla兼容)\r\n\r\n”);
回声';
而(!feof($fp)){
echo fgetss($fp);
}
fclose($fp);
问题是我得到的数据都在一行中。。如果我尝试这样的事情

echo fgetss($fp)。'
';
但它不起作用。它只是在HTTP/1.0 200 OK内容类型:text/xml行上呼出

如果可能的话,我想把数据放在一个数组中,这样我可以很好地回显它,或者回显它,但也可以用xml的东西回显它,这样我就知道这个值实际上代表什么了


这是使用shoutcast获取数据的唯一方法。。所以不要告诉我使用curl,因为它根本不起作用。

首先

是无效的标记。它应该是

。其次,如果您想“按行”显示内容,您需要将其包装在
标记中(这样您可以从服务器响应中获得换行符,或者您需要
str_替换(“\r\n\”,“
,$string)”;
(注意引号。这很重要!)

可能重复的+1.HTML标记应该是小写的。

在HTML5中是可以接受的。我知道。其他形式是为了与XHTML兼容,但我的口号是“例外越少越好”,所以我倾向于在任何地方使用

:)真的!您的
str\u replace
在使用前已损坏。它不起作用。我会试试你的str_替换代码,我会回来的。。(我习惯于使用
,它一直有效..所以idk,有时我使用
编辑:使用str_替换代码,不起作用。。该字符串是内联数据。。例如,我在数据库中有一个“id 1名称asd pass safe”,当我回显它时,它是1asdsafe。。
echo fgetss($fp) . '<BR>';