1
lat와 lng 배열을 PHP 스크립트에 전달하려고합니다. 스크립트에서 .txt 파일로 저장할 수 있습니다.자바 스크립트에서 PHP로 배열을 전달하는 중 오류가 발생했습니다.
내 배열을 직렬화하고 PHP 스크립트로 전달할 수 있습니다 ... 그리고 PHP 쪽에서, 내가 그것을 unserialize 관리합니다. 그러나 파일에 배열을 쓸 때 파일은 "배열 배열 배열"로만 표시되고 값은 ... "(1.3567, 103.124252) (1.3543, 103.436435)"이됩니다.
아래는 내 샘플 코드입니다 (직렬화) :
function serialize(mixed_value)
{
var _getType = function(inp) {
var type = typeof inp, match;
var key;
if (type == 'object' && !inp) {
return 'null';
}
if (type == "object") {
if (!inp.constructor) {
return 'object';
}
var cons = inp.constructor.toString();
match = cons.match(/(\w+)\(/);
if (match) {
cons = match[1].toLowerCase();
}
var types = ["boolean", "number", "string", "array"];
for (key in types) {
if (cons == types[key]) {
type = types[key];
break;
}
}
}
return type;
};
var type = _getType(mixed_value);
var val, ktype = '';
switch (type) {
case "function":
val = "";
break;
case "undefined":
val = "N";
break;
case "boolean":
val = "b:" + (mixed_value ? "1" : "0");
break;
case "number":
val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;
break;
case "string":
val = "s:" + mixed_value.length + ":\"" + mixed_value + "\"";
break;
case "array":
case "object":
val = "a";
var count = 0;
var vals = "";
var okey;
var key;
for (key in mixed_value) {
ktype = _getType(mixed_value[key]);
if (ktype == "function") {
continue;
}
okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);
vals += serialize(okey) +
serialize(mixed_value[key]);
count++;
}
val += ":" + count + ":{" + vals + "}";
break;
}
if (type != "object" && type != "array") {
val += ";";
}
return val;
}
PHP을 (를 unserialize 및 파일에 붙여 넣기) : ALL 도와
$data = $_POST['y'];
$arr = unserialize($data);
$fp=fopen("route.txt","w+");
foreach($arr as $key => $value){
fwrite($fp,$value."\t");
}
감사를! : D
오 (','$ 값) 정말 도움 !! !! 감사합니다. :) – Dayzza
@Jonathan BTW, JS가 실제로 JSON에서 인코딩되는 것으로 보입니다.하지만 PHP는 JSON을 이해할 수 없어야하는'unserialize'를 사용하여 비 직렬화 중입니다 ...?! – deceze
hmmm 확실치 않습니다.하지만 unserialize를 사용하면 배열에서 값을 가져올 수 있습니다. – Dayzza