2016-04-01 136 views
0

这是我有:删除冗余数据?

var places_info = [{"place_id":57,"name":"Place 1 ... }]; 

我不能使用JS(我需要处理在服务器端的这个数据,我认为node.js的是一个单一的东西有点大材小用)但源都搞砸了,它的格式是JS,我无法控制这个。

我需要PHP使用这个数据(使用json_decode),但它返回NULL,如果它是不恰当JSON ..

我怎么能删除所有的冗余数据?var places_info =semicolon从后面)

+0

所以你说你发送了,而不是有效的JSON ...好吧,如果cruft是恒定的,只知道使用一些简单的[字符串函数](http://php.net/manual/en/ref。 strings.php)....?他们在大多数编程语言中都是一样的。 – ficuscr

+0

使用ajax和json_decode将place_info数据发布到php文件 –

+0

@ficuscr我需要在'PHP'中使用这个数据,这意味着我需要使用'json_decode',但它返回'NULL',因为它不是正确的'JSON '格式(最后有'var XX ='和'semicolon')。就我所知,如果我删除了所有的'JS'语法,它将是一个普通的'JSON'。 – Solo

回答

1

打倒了我......我倾向于从使用害羞的preg_功能,当不是真的需要。习惯从ereg黑暗的日子。我会建议:

<?php 
$dirty = 'var places_info = [{"place_id":57,"name":"Place 1"}];'; 
$clean = substr(substr($dirty, 18), 0, -1); 

var_dump(json_decode($clean)); 

substr是你应该知道的。使用一些字符串函数,您可以执行许多任务。

0

如果您不能发送正确的JSON到PHP那么这种模式也许应该这样做:

preg_match('/\[.*\]/', $string, $match); 

print_r(json_decode($match[0], true));