Quelle est la meilleure façon de charger un ensemble de données littérales en PHP?

StackOverflow https://stackoverflow.com/questions/2244336

  •  19-09-2019
  •  | 
  •  

Question

Je construis une petite galerie qui aura seulement 20 ou si les images en elle. Je voudrais avoir ces données stockées quelque part (même dans le fichier PHP lui-même), et ainsi je cherche des moyens de coder les données dans un fichier littéral ou ressource.

En JavaScript, j'utiliser la notation ressemblant (de mémoire):

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

Ceci est JSON, en substance.

Je suppose que JavaScript est plus dynamique que PHP et si cela est impossible. Y at-il une alternative simple, en utilisant peut-être XML et obligatoire pour certaines classes?

Je suis un novice PHP complet, alors s'il vous plaît ne présumez pas de connaissances dans votre réponse.

Était-ce utile?

La solution

Si vous avez juste quelques données constantes que vous souhaitez stocker dans un fichier PHP, vous pouvez utiliser la même chose que vous avez fait en Javascript. Déclarer juste un tableau PHP


Quelque chose comme ça devrait faire l'affaire:

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

Et puis, vous ne pouvez travailler avec le tableau de $albums.


Bien sûr, ce n'est pas facile mettre à jour, vous devez écrire un code PHP valide -. Mais si vous avez seulement quelques images, comme vous l'avez dit, il ne devrait pas être si difficile à gérer


Une autre solution serait de stocker les données dans un fichier externe (en XML ou JSON, par exemple) , et utiliser quelque chose comme simplexml_load_file ou json_decode de le lire.

Mais cela signifie un peu plus de travail - alors peut-être pas nécessaire dans votre cas

Autres conseils

Enregistrer les données dans un fichier séparé JSON et utiliser PHP json_decode () fonction d'analyser en objets PHP.

En utilisant cette approche, vous avez également un accès facile aux données en JavaScript via AJAX, si vous décidez d'aller dans cette direction.

De cette façon est plus facile à travailler que le stockage des données dans votre fichier PHP, et cela signifie aussi que vous pouvez mettre à jour les données trivialement programme si le besoin se présente jamais.

En PHP vous définirait probablement cela comme un tableau, par exemple.

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

Vous pouvez faire la même exacte en PHP:

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

Mais cela est mauvais style. Vous pouvez créer une classe:

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

Ne pas oublier serialize

  

sérialiser - Génère une représentation stockable d'une valeur

serialize travaille sur des objets PHP trop qui JSON et XML ne pas

var_export et json_encode sont possibles.

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

il existe nombre de possibilités

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top