將字符串轉換爲數組我有一個發送數據到我的PHP文件中的JavaScript代碼...我有困難,在PHP
的這個樣本值是:
array(
array('story_name'=>'mystory', 'priority'=>1),
array('story_name'=>'mystory2', 'priority'=>2)
)
所以我的問題是如何將此字符串轉換爲相同格式的PHP數組,以便我可以追加到我的查詢?
將字符串轉換爲數組我有一個發送數據到我的PHP文件中的JavaScript代碼...我有困難,在PHP
的這個樣本值是:
array(
array('story_name'=>'mystory', 'priority'=>1),
array('story_name'=>'mystory2', 'priority'=>2)
)
所以我的問題是如何將此字符串轉換爲相同格式的PHP數組,以便我可以追加到我的查詢?
使用JSON:
echo json_encode($yourarray);
echo json_decode($_GET['fromjs']);
你可以序列化()然後urlencode()它,但json_encode在各種方式更好(更小,更可讀,更便攜式...) – voidstate
問題是那些數組只是一個字符串,而不是一個數組結構,仍然json可以做到這一點? – user1073113
將其轉換爲數組。爲什麼在這裏使用字符串...是否有一個原因,它必須是一個字符串呢?我對我沒有意義;)在js中處理數組結構並將其轉換爲JSON字符串以與PHP交互。 –
你確定要發送本機PHP代碼的服務器?這確實可能會導致一些安全漏洞的主要主要。以更友善的格式發送數據要好得多。
mystory,1|mystory,2
然後,你可以使用explode()
方法將數據轉換成數組
其他人使用JSON建議。
讓我們考慮,我們有一個js:你會在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
}
]
JavaScript的數組值可以使用下面的方法
步驟1被傳遞到PHP文件格式化您的上述數據數組作爲
<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>
這裏我們所做的是,當提交被調用時,我們首先使用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文件的字符串將被分裂回陣列。
你可以使用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對象表示法(JSON)的更多信息,請參閱http://en.wikipedia.org/wiki/JSON。
是否有使用* this *格式而不是標準格式的原因? (如JSON) – Roman
你不能通過JS發送數組到PHP。只有某些格式的字符串(例如JSON)。 –
是的,這是一個字符串不是一個實際的數組.. ..我沒有使用escape(thestringArray)將它發送到我的PHP文件 – user1073113