Was ist der einfachste Weg, um eine Reihe von wörtlichen Daten in PHP zu laden?

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

  •  19-09-2019
  •  | 
  •  

Frage

Ich baue eine kleine Galerie, die nur 20 Bilder enthält. Ich möchte, dass diese Daten irgendwo (auch in der PHP -Datei selbst) gespeichert werden, und suche daher nach Möglichkeiten, die Daten als wörtliche oder eine Ressourcendatei zu codieren.

In JavaScript würde ich eine Notation verwenden, die ähnelt (aus dem Speicher):

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

Dies ist JSON im Wesentlichen.

Ich nehme an, JavaScript ist dynamischer als PHP und dies ist daher nicht möglich. Gibt es eine einfache Alternative, möglicherweise mit XML und einer Bindung an einige Klassen?

Ich bin ein vollständiger Php -Anfänger, nimm bitte kein Wissen in deiner Antwort an.

War es hilfreich?

Lösung

Wenn Sie nur einige konstante Daten haben, die Sie in einer PHP -Datei speichern möchten, können Sie dasselbe wie in JavaScript verwenden: Deklarieren Sie einfach ein PHP -Array.


So etwas sollte den Trick machen:

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

Und dann kannst du einfach mit dem arbeiten $albums Array.


Natürlich ist es nicht einfach Um zu aktualisieren, müssen Sie einen gültigen PHP -Code schreiben. Wenn Sie jedoch nur ein paar Bilder haben, wie Sie sagten, sollte es nicht so schwer zu verwalten sein.


Eine andere Lösung wäre, die Daten in einer externen Datei zu speichern (zum Beispiel in XML oder JSON), und benutze so etwas wie simplexml_load_file oder json_decode es lesen.

Aber es bedeutet ein bisschen mehr Arbeit - also vielleicht nicht so notwendig in Ihrem Fall?

Andere Tipps

Speichern Sie die Daten in einem separaten JSON Datei und verwenden Sie PHPs JSON_DECODE () Funktionieren Sie es in PHP -Objekte.

Mit diesem Ansatz haben Sie auch einen einfachen Zugriff auf die Daten in JavaScript über AJAX, wenn Sie sich jemals in diese Richtung bewegen.

Auf diese Weise ist es einfacher, Daten in Ihrer PHP -Datei zu speichern, und dies bedeutet auch, dass Sie die Daten programmgesteuert aktualisieren können, wenn jemals der Bedarf entsteht.

In PHP würden Sie dies wahrscheinlich als Array definieren, dh.

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

Sie können genau das Gleiche in PHP machen:

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

Aber das ist ein schlechter Stil. Vielleicht möchten Sie eine Klasse erstellen:

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

Vergiss nicht Serialisieren

Serialisierung - erzeugt eine aufbewahrbare Darstellung eines Wertes

Serialize funktioniert auch an PHP -Objekten, die JSON und XML nicht tun

var_export und JSON_ENCODE sind Möglichkeiten.

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

Es gibt eine Reihe von Möglichkeiten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top