PHP és JavaScript tömb konverter
March 24th, 2010 19:33 - hozzászólások: 0, nézettség: 615
Összedobtam hamar egy tömb átalakítót PHP nyelven, amivel PHP-ből és JavaScript-ből egyaránt oda-vissza tudjuk tömbünket konvertálni.
Ez azért jó, hogy a két nyelv tömbjeit tudjuk kezelni a másik nyelvben. Ha például PHP-ben dolgozunk és szeretnénk átadni a JavaScript-nek az adott tömb tartalmát, akkor ezekkel a függvényekkel lehetőségünk nyílik rá. Ugyan akkor ez fordítva is lehetséges.
Most pedig lássuk a kódot:
<?php
// JS array => PHP array
function jsarray($javascript, $varname) {
$parts = explode(';', $javascript);
$javascript = null;
foreach ($parts as $part) {
if (!stristr($part, 'new Array()'))
$javascript .= $part.';';
else
$javascript .= str_ireplace('new Array()', 'Array()', $part.';');
}
$javascript .= 'return '.$varname.';';
$js = str_replace(array(";\n;", "; ;", $varname), array(";\n", ';', '$'.$varname), $javascript);
return eval($js);
}
// PHP array => JS array
function arrayjs($array, $varname, $flag = false) {
$jsarr[$varname] .= "\n".$varname." = new Array();\n";
foreach ($array as $key => $value) {
if (!is_int($key)) $key = '"'.addslashes($key).'"';
if (is_array($value))
$jsarr = @array_merge($jsarr, arrayjs($value, $varname.'['.$key.']', true));
else {
$jsarr[$varname] .= $varname.'['.$key.']'.' = ';
if (is_int($value) or is_float($value))
$jsarr[$varname] .= $value;
elseif (is_bool($value))
$jsarr[$varname] .= $value ? 'true' : 'false';
elseif (is_string($value))
$jsarr[$varname] .= '"'.addslashes($value).'"';
elseif (is_null($value))
$jsarr[$varname] .= 'null';
else
return false;
$jsarr[$varname] .= ";\n";
}
}
if (!$flag) {
foreach ($jsarr as $val) { $out .= $val; }
return $out;
}
return $jsarr;
}
?>
A példa:
<?php
$simple = array("text", 1, false, true, 10.3);
$multi = array(
"simple" => $simple,
"multi" => array(
"sha1" => sha1('data'),
"md5" => md5('data'),
),
0, 1, 20, 3,
'user' => array(
'valaki@example.com' => array(
'name' => 'valaki',
'password' => sha1('string'),
'online' => true,
),
'valaki@gmail.com' => array(
'name' => null,
'password' => sha1('passw'),
'online' => false,
),
'valaki@domain.com' => array(
'name' => "",
'password' => sha1('PsWd'),
'online' => false,
),
),
);
$js = arrayjs($multi, 'js_array');
echo $js;
var_export(jsarray($js, 'js_array'));
?>
Ezzel be is fejezném e rövid bejegyzést, használjátok kedvetekre.
Eddig még egy hozzászólás sem érkezett
Utoljára aktív
Legnézetebb
- „Memória” PHP-vel? Hogyan?
- Ubuntu Desktop Pack v2
- Photoshop kellékek
- Users of Ubuntu desktop pack
- Amire büszke vagyok…
- 35 briliáns fotó
Címkék
- összes
- info (2)
- software (2)
- ubuntu (3)
- linux (3)
- desktop (5)
- wallpaper (5)
- háttérképek (6)
- tutorial (1)
- xhtml (1)
- css (2)
- photoshop (1)
- textures (1)
- plug-in (1)
- photography (3)
- php (6)
- development (8)
- fejlesztés (8)
- script (6)
- webdesign (2)
- verseny (2)
- javascript (3)
- api (1)
- webtools (1)
- service (1)
Archívum
- January, 2008
- February, 2008
- March, 2008
- September, 2008
- March, 2009
- April, 2009
- May, 2009
- July, 2009
- August, 2009
- September, 2009
- November, 2009
- February, 2010
- March, 2010
- June, 2010
- August, 2010
