Seite 1 von 1

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

Verfasst: Do 8. Feb 2024, 08:58
von emergence
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;
    }

Re: bug classes\class.htmlparser.php

Verfasst: Do 8. Feb 2024, 11:36
von Faar
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.

Re: bug classes\class.htmlparser.php

Verfasst: So 11. Feb 2024, 10:50
von xmurrix
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