PHP değişmez bir veri kümesini yüklemek için en kolay yolu nedir?

7 Cevap php

Ben sadece bunu 20 ya da öylesine görüntüleri olacak küçük bir galeri inşa ediyorum. Ben bu verileri bir yere saklanır (hatta PHP dosyasının kendisinde) ve böylece bir edebi ya da kaynak dosyası olarak veri kodlama yollarını arıyorum var istiyorum.

JavaScript, ben (bellek) benzeyen notasyonu kullanmak istiyorsunuz:

var albums = [
  { name='Album 1', photos=['photo1.jpg', 'photo2.jpg'] },
  { name='Album 2', photos=['photo3.jpg', 'photo4.jpg'] }
]

Bu, özünde, JSON.

JavaScript PHP daha dinamik olduğunu ve bu yüzden bu mümkün değil herhalde. Basit bir alternatif, belki XML kullanarak ve bazı sınıflara bağlama var mı?

Ben tam bir PHP acemi değilim, bu yüzden cevap herhangi bir bilgi düşünmeyin lütfen.

7 Cevap

Eğer sadece bir PHP dosyasında saklamak istediğiniz bazı sabit veri varsa Javascript yaptığı gibi, sen de aynı şeyi kullanabilirsiniz: Sadece bir PHP dizisi bildirmek.


Something like this should do the trick :

$albums = array(
    array(
        'name' => "Album 1", 
        'photos' => array('photo1.jpg', 'photo2.jpg'), 
    ), 
    array(
        'name' => "Album 2", 
        'photos' => array('photo3.jpg', 'photo4.jpg'), 
    ), 
);

Ve o, sadece $albums dizi çalışabilirsiniz.


Of course, it's not easy to update, you have to write some valid PHP code -- but if you only have a couple of images, like you said, it should not be that hard to manage.


Another solution would be to store the data in an external file (in XML or JSON, for instance), and use something like simplexml_load_file or json_decode to read it.

Ama biraz daha fazla iş anlamına gelir - senin durumunda belki bu gerekli değildir?

Ayrı bir json dosyasındaki verileri kaydetmek, ve PHP nesneleri ayrıştırmak için PHP'nin json_decode() işlevini kullanın.

Hiç bu yönde hareket etmeye karar verirseniz, bu yaklaşımı kullanarak, aynı zamanda, AJAX JavaScript verilere kolay erişim var.

Bu şekilde PHP dosyası veri saklamak daha çalışmak daha kolaydır ve aynı zamanda ihtiyaç her zamankinden ortaya çıkar eğer trivially programlı veri güncelleme anlamına gelir.

PHP, muhtemelen, yani bir dizi olarak bu tanımlayacaktır.

$albums = array(
    0 => array('name' => 'Album 1', 'photos' => array('photo1.jpg', 'photo2.jpg')),
    1 => array('name' => 'Album 2', 'photos' => array('photo3.jpg', 'photo4.jpg'))
);

Siz PHP aynı yapabilirsiniz:

$albums = array(
    array(
        'name'   => 'Album 1',
        'photos' => array(
            'photo1.jpg',
            'photo2.jpg',
        )
    ),
    array(
        'name'   => 'Album 2',
        'photos' => array(
            'photo3.jpg',
            'photo4.jpg',
        )
    )
);

Ama bu kötü tarzıdır. Sen bir sınıf oluşturmak isteyebilirsiniz:

class Album {

    protected $name;

    protected $files;

    public function __construct($name) {
        $this->name = $name;
    }

    public function addFile($file) {
        $this->files[] = $file;
    }

    public function getFiles() {
        return $this->files;
    }

}

$album1 = new Album('Album1');
$album1->addFile('photo1.jpg');
$album1->addFile('photo2.jpg');

$album2 = new Album('Album2');
$album2->addFile('photo3.jpg');
$album2->addFile('photo4.jpg');

$albums = array($album1, $album2);

serialize unutma

serialize - Bir değerin saklanabilir bir gösterimini üretir

PHP çok hangi JSON ve XML yapamaz nesneleri üzerinde çalışır serialize

var_export ve json_encode olasılık vardır.

file_put_contents($path_to_file, json_encode($albums));

olasılıklar vardır