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 - 20 Sept 2018 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: 163

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: 845

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: 845

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
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
1 16.08.2018 09:08 von Klaus1973
Print view MySQL Database Install problems?
in "PHP & MySQL"
1 16.08.2018 09:08 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
CMS für Online Shop
in "PHP & MySQL"
20 07.08.2017 05:54 von Isasimon
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop
Callback Befehl ++ Session ID Eintrag +++
in "PHP & MySQL"
2 16.12.2015 11:57 von PHP-Script-Shop
suche online community script
in "PHP & MySQL"
3 16.12.2015 11:51 von PHP-Script-Shop
Text basierender Chat
in "PHP & MySQL"
5 16.12.2015 11:51 von PHP-Script-Shop
Counter mit PHP
in "PHP & MySQL"
2 16.12.2015 11:50 von PHP-Script-Shop



Besucher : 5749840    Heute : 683     Gestern : 1360     Online : 40     20.9.2018    11:34      0 Besucher in den letzten 60 Sekunden        
Nach oben