Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche von HTML Attributes in bestimmten Tags mit PHP

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

  • Suche von HTML Attributes in bestimmten Tags mit PHP

    Hallo zusammen,

    Ich bin ganz neu hier im Forum. Ich bin von eurem Partnerforum Winhilfe.ch(dort bin ich Newsmoderator) hierher gekommen und habe schon mein erstes Problem.
    Mit diesem PHP-Script suche ich in einer bestimmten HTML datei die zuvor angegeben wurde beliebige Tags aus:
    PHP-Code:
    function htmltagsearch ($content$tag) {
    $thetag = Array();
    for (
    $nr 0$nr strlen($content); $nr++) {
    $tagbeginn stripos($content"<$tag"$nr);
    if(!
    $tagbeginn === FALSE) {
    $nr $tagbeginn;
    $tagend stripos($content">"$tagbeginn);
    $lenght $tagend-$tagbeginn;
    $thistag substr($content$tagbeginn$lenght+1);
    array_push($thetag$thistag);
    }
    }
    return 
    $thetag;

    Nun bin ich bei dem Script ein bisschen am weiterbasteln und möchte gerne auch noch den Inhalt in ausgewählten Attributes auswerten. Ich dachte das müsste so gehen:
    PHP-Code:
    function htmlattributesearch ($content$tag$attribute) {
    $thetag = Array();
    for (
    $nr 0$nr strlen($content); $nr++) {
    $tagbeginn stripos($content"<$tag"$nr);
    $attributebeginn stripos($content"$attribute=\""$tagbeginn);
    if(!
    $attributebeginn === FALSE) {
    $nr $attributebeginn;
    $tagend stripos($content">"$tagbeginn);
    $attributeend stripos($content"\""$attributebeginn);
    $lenght $attributeend-$attributebeginn-strlen($attribute)-3;
    $thistag substr($content$attributebeginn$lenght+1);
    array_push($thetag$thistag);
    }
    }
    return 
    $thetag;

    Aber irgendwie gibt mir mein Server folgende Meldung aus:
    Code:
    Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 82407 bytes) in D:\www\www696\WebEye\optimizehandy.php on line 36
    Irgendwie finde ich den Fehler im Code einfach nicht. Könnte mir jemand sagen was da schief läuft? Ich bin über jede Antwort sehr dankbar.

    Mit freundlichen Grüssen
    [ASTERIX]

    PS: Bin mit meinen 11 Jahren noch eher PHP-Anfänger, darum bitte eine möglichst einfache Antwort.

  • #2
    AW: Suche von HTML Attributes in bestimmten Tags mit PHP

    Also für mich siehts nach ner Überschreitung des memor_limit in der php.ini aus, da dein Script wohl ein wenig rechenintensiv ist. Warum versuchst du es nicht mit preg_match?

    Kommentar


    • #3
      AW: Suche von HTML Attributes in bestimmten Tags mit PHP

      Probiers mal mit DOM. Da gibt die nette Funktion "getElementsByTagName".

      PHP-Code:
      <?php
      $document 
      = new DOMDocument();
      $document->loadHTML("htmlcode");
      $nodelist $document->getElementsByTagName("name");
      //nodelist abarbeiten
      ?>
      Man kann auch damit Attribute lesen. Ist denk ich einfacher.

      //edit: Ich glaub für diese Version brauchst du PHP5, es gibt aber eine PHP4-Alternative

      Kommentar


      • #4
        AW: Suche von HTML Attributes in bestimmten Tags mit PHP

        hi,

        php hat ein internes memorylimit und das hast du verbraucht. das bedeutet, du musst deinen code optimieren.

        PHP-Code:
        for ($nr 0$nr strlen($content); $nr++) { 
        hier wird zum beispiel bei jedem schleifendurchgang strlen($content) aufgerufen. kann bei großen dateien sehr lange dauern...

        ansonsten arbeite mit den return werten von strpos usw.
        ich habs nicht ausprobiert, aber so in etwas sollte das aussehen:


        PHP-Code:
        function htmlattributesearch ($content$tag$attribute)
        {
            
        $thetag = Array();

            
        $tagbeginn=stripos($content'<'.$tag$nr);
            
        $attributebeginn=stripos($content$attribute.'='$tagbeginn); 

            while(
        $tagbeginn!==FALSE)
            {
                
        $attributeend=stripos($content'"'$attributebeginn); 
                
        $tagend stripos($content'>'$tagbeginn);
                
        $lenght=$attributeend-$attributebeginn-strlen($attribute)-3
                
        $thetag[]=substr($content,$attributebeginn,$lenght+1);

                
        $tagbeginn=stripos($content'<'.$tag$nr);
                
        $attributebeginn=stripos($content$attribute.'='$tagbeginn); 
            }

            return 
        $thetag;

        falls das auch nicht klappt, musst dus komplett anders machen. dann nämlich musst du den speicher sauberhalten, also nach jedem fund alles vor dem fund und den fund selbst aus $content löschen und dann weitermachen.

        p.s:

        PHP-Code:
        if(!$attributebeginn === FALSE) { 
        da musst ich dreimal hinschauen. warum so schwer machen?

        PHP-Code:
        if($attributebeginn !== FALSE) { 
        Zuletzt geändert von Brian; 20.10.2007, 20:12.
        AC/DC Fanpage www.ifyouwantblood.de
        Nein zur Zensur im Internet und anderswo - Anonymous

        Kommentar


        • #5
          AW: Suche von HTML Attributes in bestimmten Tags mit PHP

          Vielen Dank für die vielen antworten! Werde, wenn ich Zeit habe die mal durchprobieren. Jetzt habe ich die leider gerade nicht. Bis später.


          Edit (autom. Beitragszusammenführung):

          Danke nochmals für die Antworten! Besonders die letzte von Brian hat mir gefallen(sorry an alle anderen). Denn ich möchte das ganze am liebsten selbst programmieren(da lern ich auch bisschen mehr dazu). Ich hab die Lösung von dir, Brian, ausprobiert doch anscheinend benutzt das ganze immer noch zu viel Memory...

          Wie würde man dass mit dem aus dem speicher löschen anstellen? Ich währ sehr dankbar für eine Antwort!

          MFG
          [ASTERIX]
          Zuletzt geändert von andre.roesti; 21.10.2007, 17:01. Grund: Antwort auf eigenen Beitrag innerhalb von 24 Stunden!

          Kommentar

          homepage-forum.de - Hilfe für Webmaster! Statistiken

          Einklappen

          Themen: 56.880   Beiträge: 430.743   Mitglieder: 28.628   Aktive Mitglieder: 43
          Willkommen an unser neuestes Mitglied, Nightbird.

          Online-Benutzer

          Einklappen

          170 Benutzer sind jetzt online. Registrierte Benutzer: 2, Gäste: 168.

          Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

          Die neuesten Themen

          Einklappen

          • basti1012
            Antwort auf Änderung an der CSS macht Probleme
            @-moz-keyframes sowie @-webkit-keyframes brauch man eigentlich nicht.
            Es reicht @keyframes
            Man kann das natürlich ändern mit mehr Bildern , finde das aber etwas kompliziert.
            Da gibt es einfacher Slideshows die sich leichter anpassen lassen.
            Gestern, 17:27
          • Nightbird
            Änderung an der CSS macht Probleme
            Als neues Forumsmitglied möchte ich mich gleich mit einer Frage an Euch wenden.
            Bei der Programmierung von HTML geht's so halbwegs aber bei einer CSS habe ich so meine Schwieriegkeiten.
            Dashalb suche ich mir im Web hauprsächlich Templates zusammen, die meinen Vorstellungen entsprechen....
            Gestern, 17:01
          • arnego2
            Spammer in Editoren
            Wer hat es gewußt? Das Nulled Wordpress Themes, so einige Plugins die modifiziert wurden auch Ostereier haben war bekannt.
            Die
            • html-cleaner.com
            • html-online.com/editor/
            • html5-editor.net
            • htmlg.com
            • … and others
            Sind hier genannt: https://casparwre.de/blog/seo-scam/...
            18.06.2021, 17:41
          • Fridolin
            Passendes Programm/Plugin für online Buchung
            Hallo zusammen, ich brauche eure hilfe - und zwar baue ich eine Webseite für einen Freund. Es geht um eine Vermietung/ Verleih tageweise. Aktuell verwende ich Wix, überlege aber zu Wordpress zu wechseln. Mein Problem ist das passende Programm/Plugin für die online Buchung und Zahlung zu finden. Wix...
            18.06.2021, 09:43
          • daniel5959
            Antwort auf htaccess - aus txt eine htaccess datei erstellen
            Hallo,

            falls der Server des Webspaces dem User die Rechte an der Datei entzogen hat, dann kann man ja den Support um Hilfe bitten.

            Ich habe hin und wieder den Support bemühen müssen, wenn ich ein Problem nicht selber lösen konnte.

            daniel5959
            14.06.2021, 16:56

          Die neuesten Beiträge

          Einklappen

          Lädt...
          X