Gewisser Bildname aus langem String filtern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gewisser Bildname aus langem String filtern

    Hallo,

    ich habe hier ein etwas schweres Problem... und zwar habe ich solche Strings:
    PHP-Code:
    [{"title":"","description":"","name":"Aussenansicht Nord 2.JPG"},
    {
    "title":"Vorderansicht West","description":"","name":"Aussenansicht Nord_West 1.JPG"},
    {
    "title":"Vorderansicht West","description":"","name":"Aussenansicht Nord_West 2.JPG"},] 
    Nun möchte ich nur den Dateinamen herausfiltern, da ich den Rest nicht benötige... als Ansatz würde mir einfallen den Inhalt jedes 6. "" zu speichern... da ich leider die notwendigen Befehle nicht kenne hoffe ich, dass Ihr mir helfen könnt
    Zuletzt geändert von DiiiDiii; 17.10.2013, 17:56.

  • #2
    Sieht nach einem JSON-String aus. Den kannst du dann mit json_decode in ein Array umwandeln und hast dann problemlos Zugriff auf die einzelnen Elemente.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Danke, ich habe es jetzt mal versucht, aber leider schaffe ich es nicht...

      Mein Inhalt des Strings bekomme ich so:
      PHP-Code:
      $images_string mysql_result(mysql_query("SELECT images FROM ec0tn_jea_properties WHERE ref=$objektnummer"$db), 0); 
      Und er sieht aus wie im ersten Beitrag schon gepostet...

      Da ich leider keine Ahnung habe wie das funktioniert habe ich probiert, probiert und probiert, aber irgendwie will es nicht...
      PHP-Code:
      $array json_decode($images_stringtrue);
      echo 
      $array[1]; 

      Kommentar


      • #4
        Und was ergibt ein print_r($array)?

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Das bringt das folgende:

          PHP-Code:
          Array ( [0] => Array ( [title] => Frontansicht [description] => Beschreibung [name] => BDF-Alles-aus-einer-Hand 1.jpg ) [1] => Array ( [title] => [description] => [name] => SouthernMansion.jpg ) [2] => Array ( [title] => [description] => [name] => traumhaus.jpg ) [3] => Array ( [title] => [description] => [name] => modernes-luxus-traumhaus-mit-pool.jpg ) ) 
          Wie kann ich dann aber auf die einzelnen bilder zugreifen?

          Kommentar


          • #6
            Tipp 1:
            Mach dich mal über Arrays schlau!

            Tipp 2:
            Probier mal spaßenhalber ein
            PHP-Code:
            echo $array[1]['name']; 
            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              1. Das letzte Komma vor der schliessenden eckigen Klammer ist zuviel und bringt dadurch kein Array in $array.
              2. falls Du mit json_decode Objekte geliefert bekommst, muss der Zugriff mit "->" erfolgen, also z. B.:

              PHP-Code:
              $images_string='[
               {"title":"", "description":"","name":"Aussenansicht Nord 2.JPG"},
               {"title":"Vorderansicht West","description":"","name":"Aussenansicht Nord_West 1.JPG"},
               {"title":"Vorderansicht West","description":"","name":"Aussenansicht Nord_West 2.JPG"}
              ]'
              ;

              $array=json_decode($images_string);

              echo
              "<br><br>Testausgabe mit print_r:<br>";print_r($array);

              echo
              "<br><br>Testausgabe als stdClass-Objekt: ";
              echo 
              $array[1]->name;

              echo
              "<br><br>Testausgabe mit foreach:<br>";
              foreach(
              $array as $k => $v)
              {
               echo 
              "key: $k; " $v->name "<br>";
              }

              // diese Ausgabe am Schluss, da das Skript mit Fatal Error abbricht
              echo"<br><br>Testausgabe als assoziatives Array: ";
              echo 
              $array[1]['name']; // FEHLER: Fatal error: Cannot use object of type stdClass as array in ..... 
              Die foreach-Schleife liefert dir als Ergebnis:
              key: 0: Aussenansicht Nord 2.JPG
              key: 1: Aussenansicht Nord_West 1.JPG
              key: 2: Aussenansicht Nord_West 2.JPG

              (ausprobiert mit php 5.4)
              Zuletzt geändert von Coocoo; 19.10.2013, 13:24.

              Kommentar

              Lädt...
              X