在PHP中加载一组文字数据最简单的方法是什么?

时间:2010-02-11 12:25:23

标签: php literals

我正在建造一个小画廊,里面只有20张左右的图片。我希望将这些数据存储在某个地方(即使在PHP文件本身中),因此我正在研究将数据编码为文字或资源文件的方法。

在JavaScript中,我会使用符号(来自内存):

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

这实际上是JSON。

我认为JavaScript比PHP更具动态性,所以这是不可能的。是否有一个简单的替代方案,可能使用XML并绑定到某些类?

我是一个完整的PHP新手,所以请不要对你的答案有所了解。

7 个答案:

答案 0 :(得分:1)

如果您想要存储在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代码 - 但如果你只有几个图像,就像你说的那样,它应该不难管理。 / p>


另一种解决方案是将数据存储在外部文件(例如XML或JSON)中,并使用simplexml_load_filejson_decode之类的内容来读取它。

但这意味着更多的工作 - 所以在你的情况下可能没那么必要吗?

答案 1 :(得分:1)

将数据保存在单独的json文件中,并使用PHP的json_decode()函数将其解析为PHP对象。

使用这种方法,如果你决定朝着那个方向前进,你也可以通过AJAX轻松访问JavaScript中的数据。

这种方式比在PHP文件中存储数据更容易,这也意味着如果需要,您可以以编程方式更新数据。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您可以在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);

答案 4 :(得分:0)

var_exportjson_encode是可能的。

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

答案 5 :(得分:0)

有多种可能性

答案 6 :(得分:0)

不要忘记serialize

  

serialize - 生成值的可存储表示

serialize也适用于PHP对象,JSON和XML也不支持