[#455] bug classes\class.htmlparser.php

Alle bestätigten Fehler in CONTENIDO 4.10 (erledigte Fehler werden durch geschlossene Beiträge gekennzeichnet).
Antworten
emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

[#455] bug classes\class.htmlparser.php

Beitrag von emergence » Do 8. Feb 2024, 08:58

reihen weise php warnings wenn $chars null oder leer...

folgendes ersetzt die bestehende methode...

Code: Alles auswählen

    protected function _skipInTag($chars)
    {
        $sb = "";
        while (($ch = $this->_currentChar()) !== -1) {
            if ($ch == ">") {
                return $sb;
            } else {
                $match = false;

                if (is_string($chars) && strlen($chars) == 1) {
                    $chars = Array($chars);
                }
                $_count = ($chars !== null && $chars !== '') ? count($chars) : 0;
                
                for ($idx = 0; $idx < $_count; $idx++) {
                    if ($ch == $chars[$idx]) {
                        $match = true;
                        break;
                    }
                }
                if (!$match) {
                    return $sb;
                }
                $sb .= $ch;
                $this->_moveNext();
            }
        }

        return $sb;
    }
*** make your own tools (wishlist :: thx)

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: bug classes\class.htmlparser.php

Beitrag von Faar » Do 8. Feb 2024, 11:36

Ja, so Sachen wurden und werden gerne vergessen und bei Wordpress bricht das Programm gleich mit fatalem PHP Fehler ab, wenn einen NULL eine Eigenschaft (property) zugeordnet werden soll, weil keiner prüft, ob die Variable wirklich ein Objekt ist.
Aber im Gegensatz zu Wordpress und den arroganten Wordpress Entwicklern (don't criticize the holy code) besteht hier die echte Chance, dass das bald behoben wird.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: bug classes\class.htmlparser.php

Beitrag von xmurrix » So 11. Feb 2024, 10:50

Die Klasse HtmlParser erwartet eine Variable vom Typ String im Konstruktor, allerdings ist es möglich, wegen der fehlenden Typisierung alles mögliche zu übergeben.
Danke für den Hinweis, das sollte man vorerst im HtmlParser abfangen. Idealerweise wäre es richtiger, nur Strings an den Konstruktor zu übergeben.

Nachtrag:
Der Fehler ist behoben, siehe Ticket #455:
https://github.com/CONTENIDO/CONTENIDO/issues/455
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten