我从外部网站收到一些文件的名称和链接,并使用以下代码将其转换为JSON字符串:
<?php
include('simple_html_dom.php');
$f = $_GET['f'];
$w = "www.something.com";
$dom = file_get_html($w);
$arr = array("file" => array());
foreach($dom->find('div[id=file_html] div[id=right_data]') as $top){
$n = $top->find('div', 0)->childNodes(0)->innertext;
$l = $top->find('div', 2)->childNodes(0)->childNodes(0)->childNodes(0)->href;
$jj[] = array('name' => $n, 'link' => $l);
}
array_push($arr['file'], $jj);
echo json_encode($arr);
?>
我期望的输出是
{"songs":[{"name":"file1","link":"link1"},{"name":"file2","link":"link2"}]}
但我得到的输出是:
{"songs":[[{"name":"file1","link":"link1"},{"name":"file2","link":"link2"}]]}
有人可以在我的代码中指出错误吗? 谢谢
答案 0 :(得分:0)
删除这个,
$arr = array("file" => array());
在foreach()
的迭代之后
foreach($dom->find('div[id=file_html] div[id=right_data]') as $top){
// as it is....
}
$arr['file'] = $jj;