HTML-Metadaten in Array

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

  • HTML-Metadaten in Array

    Ich möchte ein Script anpassen, das <META>-Angaben, Titel, Links etc. aus einer URL ausliest. (Der Zweck ist, diese Ausgabe für einen Template-Generator zu verwenden).
    Das Original liegt unter PHP Classes .

    Die Funktion zum Auslesen der Metadaten im HEAD
    Code:
    print_r ($info->get_meta_data());
    gibt folgenden ARRAY zurück:
    Code:
    Array ( 
    	[0] => Array ( 
    		[name] => generator 
    		[content] => Homesite 
    	) 
    	[1] => Array ( 
    		[name] => author 
    		[content] => name 
    	) 
    	[2] => Array ( 
    		[name] => copyright 
    		[content] => firma 
    	) 
    	[3] => Array ( 
    		[name] => keywords 
    		[content] => keyword1, keyword2 
    	) 
    	[4] => Array ( 
    		[name] => description 
    		[content] => my page is hot stuff 
    	)
    	... u.s.w.
    )
    Wie bekomme ich diesen mehrdimensionalen ARRAY nun in eine Form, die ich auch wirklich verwenden kann (in echo() oder anderswo)?
    Der folgende Code
    Code:
    $array = $info->get_meta_data();
    foreach ( $array as $key1 => $value1 ) {
    	echo "<p>";
    	foreach ( $value1 as $key2 => $value2 ) {
    		echo "KEY: $key2 => VALUE: $value2\n<br>";
    	}
    }
    gibt folgendes Ergebnis aus:
    Code:
    KEY: name => VALUE: generator 
    KEY: content => VALUE: Homesite 
    
    KEY: name => VALUE: author 
    KEY: content => VALUE: name 
    
    KEY: name => VALUE: copyright 
    KEY: content => VALUE: firma 
    
    KEY: name => VALUE: keywords 
    KEY: content => VALUE: keyword1, keyword2 
    
    KEY: name => VALUE: description 
    KEY: content => VALUE: my page is hot stuff 
    ... u.s.w.
    Also das Ergebnis soll zum Beispiel sein, dass ich die Werte in einer Form erhalte, die ich wieder in einer externen Datei abspeichere.
    Beispiel einer gedachten "save.txt":
    Code:
    AUTHOR|Mein Name
    COPYRIGHT|Firma
    KEYWORDS|Keyword1, Keyword2
    DESCRIPTION|my page is hot stuff
    ... u.s.w.
    Das Original-Script von "PHPClasses" ist dem Beitrag beigefügt.
    Vielen Dank und nachträglich schöne Weihnachten und Erfolg beim Geschenke-Reklamieren
    Angehängte Dateien

  • #2
    so ?


    PHP-Code:

    $array 
    $info->get_meta_data();
    foreach ( 
    $array as $key1 => $value1 ) {
        
    // echo "<p>";
        
    foreach ( $value1 as $key2 => $value2 ) {
            
    // echo "KEY: $key2 => VALUE: $value2\n<br>";
            
    echo "<meta name=\"".$key2."\" content=\"".$value2."\">\n";
        }

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ups. für dein beispielergebnis muss die echo so aussehen ....

      PHP-Code:

      echo $key2."|".$value2."\n"
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Also der vorgeschlagene Code gibt folgendes:
        Code:
        meta name="name" content="generator" meta name="content" content="Homesite"
        Auch die 2. Variante gibt
        Code:
        name|generator content|HomeSite
        Richtig wäre aber in Variante 1:
        Code:
        meta name="generator" content="Homesite"
        und Variante 2:
        Code:
        generator|HomeSite
        Da ist ja mein Problem

        Kommentar


        • #5
          ok. hatte eben auch einen denkfehler.
          nimm das mal. das sollte jetzt aber klappen.

          PHP-Code:

          $array 
          $info->get_meta_data();
          foreach ( 
          $array as $key1 => $value1 ) {
              
          // echo "<p>";
              
          echo "<meta name=\"".$key1."\" content=\"".$value1."\">\n";

          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            STOPP. KOMANDO ZURÜCK.

            lösung kommt gleich.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              jetzt aber...

              PHP-Code:

              $array 
              $info->get_meta_data();
              foreach ( 
              $array as $key1 => $value1 ) {
                  echo 
              "<meta name=\"".$array[$key1][name]."\" content=\"".$array[$key1][content]."\">\n";

              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Letzte Variante gibt nur Array-Anzeige ohne Werte.
                Trotzdem vielen Dank.
                Hier ist die Lösung:
                PHP-Code:
                $array $info->get_meta_data();
                foreach ( 
                $array as $key1 => $value1 ) {
                  foreach ( 
                $value1 as $key2 => $value2 ) {
                      
                // Variante 1
                      
                if ($key2 == "name"){
                        echo 
                "meta name=\"".$value2."\" ";
                      } else {     
                // also wenn $key2 = "content" ist
                        
                echo "content=\"".$value2."\"\n";
                      }

                      
                // Variante 2 (auskommentiert)
                      /*
                      if ($key2 == "name"){
                        echo $value2."|";
                      } else {
                        echo $value2."\n<br>";
                      }
                       */
                   
                }

                Kommentar

                Lädt...
                X