WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Offene Tags aus String entfernen

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Offene Tags aus String entfernen - 21 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Offene Tags aus String entfernen
Mostone
Pixelschubser
Threadstarter




Beiträge: 21

Hallo,

ich habe einen String, aus dem ich momentan mit strip_tags($inStr, $allowedTags) fast alle HTML-Tags entferne. Formatierungen wie bold, kursiv u.ä. bleiben. Nun ist das Problem, dass in dem String auch nicht-geschlossene Tags verbleiben können und damit die Darstellung der restlichen Seite diese Formatierung übernimmt. Wie geht man mit sowas üblicherweise um oder gibt es irgendeine Möglichkeit zu prüfen, ob die HTML-Formatierung korrekt ist?

Danke für jede Hilfe

  Profil   Editieren   Zitieren
HoRnominatoR
Mausakrobat




Beiträge: 161

du koenntest die vorkommen offener tags zaehlen und dann ggf loeschen/auffuellen.

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Es gibt für php auch eine HTMLTidy-Extension - sonst ist halt Handarbeit angesagt.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Mostone
Pixelschubser
Threadstarter




Beiträge: 21

Eigentlich dachte ich, dass das Schliessen von Tags ziemlich häufig notwendig ist, wenn man vom User Input bekommt, der HTML-Formatierungen erlaubt. Im Netz gefunden hab ich folgende Methode, die für mich sehr gut funktioniert:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44:
// string CloseOpenTags(string string [, string beginChar [, stringEndChar [, string CloseChar]]]);
function closeOpenTags($str, $open = "<", $close = ">", $end = "/", $tokens = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
{
  $chars = array();
  for($i = 0; $i < strlen($tokens); $i++)
  {
    $chars[] = substr($tokens, $i, 1); }

    $openedTags = array();
    $closedTags = array();
    $tag = FALSE;
    $closeTag = FALSE;
    $tagName = "";

    for ($i = 0; $i < strlen($str); $i++)
     {
     	$char = substr($str, $i, 1);
        if($char == $open) { $tag      = TRUE; continue; }
        if($char == $end)  { $closeTag = TRUE; continue; }
        if($tag && in_array($char, $chars)) { $tagName .= $char; }
        else {
          if($closeTag) {
           if(isset($closedTags[$tagName])) { $closedTags[$tagName]++;   }
           else                             { $closedTags[$tagName] = 1; }
          }
          elseif($tag)
          {
            if(isset($openedTags[$tagName])) { $openedTags[$tagName]++;   }
            else                             { $openedTags[$tagName] = 1; }
          }
         $tag = FALSE; $closeTag = FALSE; $tagName = "";
        }
     }

     while(list($tag, $count) = each($openedTags))
     {
      $closedTags[$tag] = isset($closedTags[$tag]) ? $closedTags[$tag]:0;
      $count -= $closedTags[$tag];
      if($count < 1) continue;
      $str .= str_repeat($open.$end.$tag.$close, $count);
     }

  return $str;
}

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Nein es ist eigentlich eher selten. Entweder zeigt man dem Benutzer einen Fehler an - weil einfach zumachen ist wohl kaum richtig, man nutzt BBCode, welchen man ehh parsen muss oder man nutzt einen JS-basierenden Editor, welcher ehh alles schließt.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Offene Tags aus String entfernen

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Offene Tags aus String entfernen im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8126505    Heute : 423     Gestern : 463     Online : 186     21.11.2024    13:45      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben