includes.con_editcontent.php wo dieses cString::iReplaceOnceReverse
eingesetzt wird den fall, dass der code der vor </body> gesetzt werden soll folgendes generiert hat
Code: Alles auswählen
</bo<form name="editcontent" method="post" action="https://XXX.XXX.XX/contenido/external/backendedit/front_content.php?contenido=15f39f1a876b7ed255eb3472ff1939e6&area=con_editcontent&idart=327&idcat=8&lang=1&client=1"><input name="action" type="hidden" value="20"><input name="changeview" type="hidden" value="edit"><input name="idArtLangVersion" type="hidden" value=""><input name="copyTo" type="hidden" value=""><input name="data" type="hidden" value=""></form>
</body>tml>wenn das eintritt kann man nicht in den tiny wechseln oder speichern... eh cool...
aber wenn ich mir die beiden funktionen der klasse ansehe stimmt irgendwas daran nicht...
Code: Alles auswählen
$code = cString::iReplaceOnceReverse("</body>", "$contentForms</body>", $code);Code: Alles auswählen
    public static function iReplaceOnceReverse($find, $replace, $subject) {
        $start = self::posReverse(parent::toLowerCase($subject), parent::toLowerCase($find));
        if ($start === false) {
            return $subject;
        }
        $end = $start + parent::getStringLength($find);
        $first = parent::getPartOfString($subject, 0, $start);
        $last = parent::getPartOfString($subject, $end, parent::getStringLength($subject) - $end);
        $result = $first . $replace . $last;
        return $result;
    }
    
    public static function posReverse($haystack, $needle, $start = 0) {
        $tempPos = parent::findFirstPos($haystack, $needle, $start);
        if ($tempPos === false) {
            if ($start == 0) {
                // Needle not in string at all
                return false;
            } else {
                // No more occurances found
                return $start - parent::getStringLength($needle);
            }
        } else {
            // Find the next occurance
            return self::posReverse($haystack, $needle, $tempPos + parent::getStringLength($needle));
        }
    }
    Code: Alles auswählen
$code = cString::iReplaceOnce("</body>", "$contentForms</body>", $code);Code: Alles auswählen
    public static function iReplaceOnce($find, $replace, $subject) {
        $start = parent::findFirstPos(parent::toLowerCase($subject), parent::toLowerCase($find));
        if ($start === false) {
            return $subject;
        }
        $end = $start + parent::getStringLength($find);
        $first = parent::getPartOfString($subject, 0, $start);
        $last = parent::getPartOfString($subject, $end, parent::getStringLength($subject) - $end);
        $result = $first . $replace . $last;
        return $result;
    }