0

我需要将 JSON 数组传递到网页 URL,所以我这样做

$url = 'page.php?id=' . json_encode($array);

变成了

$url = 'pages.php?id=["1", "2", "3"]';

然后,里面page.php基本上是我做的Javascript代码

var foo = <?php $_GET['id']; ?>

foo不是像这样的数组["1", "2", "3"]只是[.

为什么是这样?

另外,这样做更好:url.php?id=value还是url.php?id="value"??

4

2 回答 2

4

你忘了它urlencode()

$url = 'page.php?id=' . urlencode(json_encode($array));

json_decode()当它回来时不要忘记它。

于 2011-07-10T04:07:28.030 回答
0

出于好奇,您是否必须将其作为 json_encoded 字符串传递?

也许您可以将其作为数组传递

page.php?id[]=1&id[]=2&id[]=3 

那么您的 page.php 代码将如下所示:

echo json_encode($_GET['id']);

如果您传入页面 ID,我还将使用白名单方法检查不良数据。

$safe = array('1','2','3');
$id = $_GET['id'];
foreach($id as $value){
 if(!in_array($value, $safe)){
    echo "Sry, data not valid";
    exit;
 }
}
echo json_encode($id);
于 2011-07-10T04:54:52.357 回答