json_decode işlev PHP 5.1 parçası değildir, bu yüzden ben bunu kullanamaz. Bu sürüm için başka bir işlevi var mı?
PHP 5.2 önce, JSON PECL extension kullanabilirsiniz.
Aslında, (quoting) em> PHP 5.2 entegre edilmiş uzantısıdır:
As of PHP 5.2.0, the JSON extension is bundled and compiled into PHP by default.
Some other solutions would be to use some component developped in PHP.
Bir süre önce (yaklaşık bir yıl önce), PHP 5.1, Zend Framework Zend_Json
bileşeni a> kullanılır.
Zend Framework PHP 5.2 gerektirse bile, bu bileşen gibi (I think it depends only on one other component -- maybe Zend_Exception
, ya da bir şey) em> elde edilebilir - ve bir yıl önce, PHP 5.1 ile kullanmak mümkün oldu.
The official JSON website also links to several PHP-based or PHP-oriented components -- you might want to take a look at that list.
PHP 5.1.6 çalıştıran aynı konuda koştu, ama ben müvekkilimin sunucuda uzantılarını yükseltme veya yüklemek olamazdı. Ben bir çözüm gerekli ama neyse ki Google Code üzerinde bu dosya mükemmel çalıştı Daha da kötüsü, JSON.org site aşağı oldu! Ben aslında json_encode / json_decode tanımlamak için tercih, ama fromJSON çağrı () sadece iyi çalışmış olurdu.
Önceki 5.2.0 daha bir php sürümü var çünkü bu hatayı görüyoruz. Bu işlevler included by default php 5.2.0 ve üstü vardır.
PHP Fatal error: Call to undefined function json_encode()
Sen install PECL extension ile çalışan yapabilirsiniz:
pecl install json
(Maden /etc/php5/apache2
içinde): Bundan sonra sizin php.ini
dosyasına bu eklemek, derleyecek
extension=json.so
Sonra apache yeniden başlatın.
Zend Framework Zend_Json vardır. En azından yıllar önce bir çift için kullanılır.
http://framework.zend.com/download
Sadece json kütüphanesi çekin ve bağımsız bir şekilde kullanabilirsiniz.
Başka app kullanılan zend_json bir soruna neden olur, çünkü benim sunucu i JSON PECL uzantısı yükleyemezsiniz. Yani ben mükemmel çalışıyor bu komut dosyası bulundu.
jsonwrapper: json_encode for earlier versions of PHP 5.x
PHP 5.2 geçerli JavaScript kodunun içine hemen hemen herhangi bir PHP veri yapısı döner json_encode
fonksiyonunu ekler. Sağlamalarının sağlamalarının, diziler, diziler, neyse.
Ne yazık ki Linux dağıtımları bir sürü hala PHP 5.1.x. ile nakliye
jsonwrapper eksik ise json_encode
işlevi uygulayan ve zaten varsa yalnız bırakır. So it is nicely future-compatible. strong>
Sadece ekleyin:
require 'jsonwrapper.php';
<?php
if ( !function_exists('json_decode') ){
function json_decode($json)
{
// Author: walidator.info 2009
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if ($json[$i] == '{' || $json[$i] == '[') $out .= ' array(';
else if ($json[$i] == '}' || $json[$i] == ']') $out .= ')';
else if ($json[$i] == ':') $out .= '=>';
else $out .= $json[$i];
}
else $out .= $json[$i];
if ($json[$i] == '"') $comment = !$comment;
}
eval($out . ';');
return $x;
}
}
?>
Bu denenmemiş, ben internette buldum