2016-04-01 137 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));