我在将字符串转换为php中的数组时遇到了困难

时间:2011-11-30 10:44:23

标签: php

我有一个javascript代码,可以将数据发送到我的php文件...

这样的样本值是:

array(
   array('story_name'=>'mystory', 'priority'=>1),
   array('story_name'=>'mystory2', 'priority'=>2)
)

所以我的问题是如何将此字符串转换为相同格式的php数组,以便我可以将其附加到我的查询中?

4 个答案:

答案 0 :(得分:3)

使用JSON:

echo json_encode($yourarray);
echo json_decode($_GET['fromjs']);

答案 1 :(得分:1)

您确定要将本机php代码发送到服务器吗?这确实会导致一些 主要 安全漏洞。以更友好的PHP格式发送数据要好得多。

mystory,1|mystory,2

然后您可以使用explode()方法将数据转换为数组

其他人建议使用JSON。您可以在JSON

中按如下格式设置上述数据
[       //Used to indicate sequential array i.e. $myarray[0]
    {   //Used to indicate associative array i.e. $myarray["story_name"]
        story_name: "mystory",
        priority: 1
    },
    {
        story_name: "mystory2",
        priority: 2
    }
]

答案 2 :(得分:1)

可以使用以下方法将javascript数组值传递给php文件

第1步:

让我们考虑一下js数组为

<script language=javascript>
scriptAr = new Array();
scriptAr[0] = "one";
scriptAr[1] = "two";
scriptAr[2] = "three";
<script>

第2步:

Now we will create a hidden form field as follows
<form action="phpArrayTest.php" method=post name=test onSubmit=setValue()>
<input name=arv type=hidden>
<input type=submit>
</form>

我们所做的是,当调用submit时,我们首先使用onSubmit方法做一些工作(“onSubmit = setValue()”)。 onSubmit方法将调用我们定义的setValue()函数。之后将执行操作并调用stringTokens.php。

第3步: 这里我们定义setValue方法。该方法将已经定义的数组转换为字符串,然后将其设置为隐藏字段。

<script language=javascript>    

function setValue()
{
var arv = scriptAr.toString();
// This line converts js array to String document.test.arv.value=arv;
// This sets the string to the hidden form field. }
</script>

第4步: 在php文件中,字符串将被拆分为数组。

来自http://www.hscripts.com/tutorials/php/jsArrayToPHP.php

答案 3 :(得分:1)

您可以使用eval:

$arr = eval($data);

请注意,这可能会导致安全问题,因为eval()会从字符串中执行任何PHP代码。你应该使用它与cauntion。

您还需要在代码中添加一个返回值。

有关eval()的更多信息,请访问:http://php.net/manual/en/function.eval.php

更好的方法是将JSON发送到您的php脚本,如下所示:

在javascript中:

var json = array2json(YOUR_JS_ARRAY);

将此文件发送到您的PHP脚本,并将其解码为PHP数组,如下所示:

json_decode($_POST['data']);

有关JSON解码的更多信息,请参阅http://php.net/manual/en/function.json-decode.php。 有关JavaScript Object Notation(JSON)的更多信息,请参阅http://en.wikipedia.org/wiki/JSON