我建立一个小的画廊,只会有20或以图片。我想有这样的数据存储的地方(即使在PHP文件本身)和所以我在寻找方法的编码的数据作为文字或资源的文件。

在JavaScript,我会使用符号表示类似的(从存储器):

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

这是式,在本质。

我想JavaScript更多动态的比PHP,而且这是不可能的。是否有一个简单的替代方法,或许使用XML并结合某些类?

我是一个完整的PHP新手,所以请不要假设知道你的答案。

有帮助吗?

解决方案

如果你只是有一些恒定的数据存储在一个PHP文件,可以使用的同样的事情,你有没有在Javascript:只是宣布一个PHP阵列。


这样的事情应该做的把戏:

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

而且,那么,你只可以一起工作的 $albums 阵列。


当然,它不是 容易的 更新,你得写一些有效的PHP code-但如果你只有一对夫妇的图像,就像你说的,它不应是很难管理。


另一个解决办法是将数据存储在一个外部文件 (XML或式,例如), 和使用的东西喜欢 simplexml_load_filejson_decode 读它。

但它意味着更多的工作--因此也许不必要在你的情况?

其他提示

数据保存在一个单独的 json 文件和使用PHP的 json_decode() 功能分析成PHP的对象。

使用这种方法,你也得到了方便访问该数据在JavaScript通过阿贾克斯,如果你决定要朝着这个方向前进。

这种方式是容易的工作用于数据存储在PHP文件,这也意味着你可以平凡的更新数据的编程方式若需要不断出现。

在PHP你可能会将此定义为一个阵列,即

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

您可以做同样的在PHP中:

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

但是,这是不好的风格。您可能希望创建一个类:

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);

不要忘记连载

  

连载 - 生成一个值的可存储表示

连载作品在PHP对象了这JSON和XML并不

var_exportjson_encode 是的可能性。

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

有多种可能性

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top