Nasıl PHP 5.1 'json decode edebilir?

6 Cevap php

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ı?

6 Cevap

PHP 5.2 önce, JSON PECL extension kullanabilirsiniz.

Aslında, (quoting) 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 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) 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.

http://code.google.com/p/simplejson-php/

Ö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.

Sadece ekleyin:

require 'jsonwrapper.php';

http://www.boutell.com/scripts/jsonwrapper.html

code

<?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; 
}  
} 
?>

warning

Bu denenmemiş, ben internette buldum

link

http://www.php.net/manual/en/function.json-decode.php#91216