Gewisser Bildname aus langem String filtern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by DiiiDiii; 17-10-2013, 16: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

    Comment


    • #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]; 

      Comment


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

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

        Comment


        • #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?

          Comment


          • #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

            Comment


            • #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)
              Last edited by Coocoo; 19-10-2013, 12:24.

              Comment

              Working...