使用 PHP 解析原始获取数据

Parse Raw Get Data Using PHP

我的第一个 post 所以请善待,如果这就是这里的工作方式,请不要善待。我有一个简单的脚本,它调用 API 来检索错误日志的数据,并使用 $_GET 方法调用脚本内部的 url ,因为我计划在将来调用 运行 这是一个更大的脚本的一部分,将通过 cron 运行。

我遇到的问题是,当显示数据时,它只是一堆乱七八糟的文本,丝毫没有格式化。错误日志中的每一行都以日期和时间开头。

这是输出的一个小样本。

{"type":"success","response":{"data":{"thispage":1,"totalpages":1,"log":"2015-03-09 08:16:28\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>Title of Stuff - Book Stuff\n<\/TIT2><\/metadata>]\n2015-03-09 08:20:01\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>Another TItle of Stuff - Music Title\n<\/TIT2><\/metadata>]\n2015-03-09 08:25:40\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>Holy Cow - Title of CD\n<\/TIT2><\/metadata>]\n2015-03-09 08:31:33\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>The pizza king - eat pizza\n<\/TIT2><\/metadata>]\n2015-03-09 08:35:56\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>Ouch - Ouch Ouch\n<\/TIT2><\/metadata>]\n2015-03-09 08:40:19\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>What shall I do - Dump\n<\/TIT2><\/metadata>]\n2015-03-09 08:45:59\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>Its not a hangover - its cancer\n<\/TIT2><\/metadata>]\n2015-03-09 08:49:31\tINFO\t[ADMINCGI] XML title update [<?xml version=\"1.0\" encoding=\"UTF-8\" ?><metadata><TIT2>something is going on here - lalala\n<\/TIT2><\/metadata>]\n

当然,它是在一堵巨大的墙上,里面有很多行。我如何解析它以便每一行都以每个新项目的日期和时间开头?

这是 php 我正在使用的 javascript 代码,结果如上。

    <script>
    javascript:void(location.href="http://url:port/api.php?xm=server.readlogs&f=json&a[username]=pizzaman&a[password]=THEpassword&a[type]=error");
</script>
<?php
    $output = $_GET["a[type]"];
       echo $output;
?>

在此先感谢大家的帮助

我想出了一种使用 file_get_contents 的不同方法。我一定没有弄清楚我的问题,因为这让我盯着我看了一会儿。

<?php
header('Content-Type: text/html; charset=utf-8');
$homepage = file_get_contents('http://url/api.php?xm=server.getlogs&f=json&a[username]=pizzaman&a[password]=PizzaPassword&a[type]=error');
echo"<pre>". str_replace('\n', '<br>', $homepage) ."</pre>";   
?>

然后将所有 /n 行都变成换行符,这使一切看起来都不太漂亮。现在我只需要弄清楚如何将所有 /t 替换为空白 space 就可以了。

如果有人有更好的解决方案,或者有办法让它更干净,我会洗耳恭听!谢谢大家。