Der Standardwert ist 100.000, was nichts weiter bedeutet, da alle PHP preg_XXXXX Funktionen dieses Limit einsetzen.
Wird das Limit überschritten ergibt sich ein Abpfiff und daraus können sich ungeahnte weitere Dinge entwickeln.
Das aber wird den normalen Nutzer nicht treffen.
Es gibt aber Kandidaten, die haben den Feldtyp von den Inhaltstabellen geändert um sehr lange Texte verwenden zu können , die könnten in's Bein gekniffen werden.
Wie hoch ist aber denn tatsächliche Wert ?
Das kann man damit testen:
Code: Select all
<?php
echo (int)ini_get( 'pcre.backtrack_limit' );
?>
preg_XXXX Funktionen werden an vielen Stellen eingesetzt, ganz besonders aber Smarty.
Smarty schlägt da mit voller Wucht zu, da die Inhalte nun gebündelt auftreten.
Hat jemand also einen Gesamtinhalt bestehend aus allen HTML und sonstigen Inhalten von mehr als 100000 Bytes, dann verarbeitet Smarty den Inhalt und setzt preg_XXX Funktionen ein und erzeugt einen Abpfiff.
Bei sich rekursiv aufrufenden Funktionen kann das sogar noch erheblich schneller gehen, d.h. mit erheblich geringeren Volumen.
Hat man ungeklärte Abbrüche dann
1. den Test ausführen
2. den Wert erhöhen
Der Wert in der PHP.INI erhöht, wer das nicht kann, darf es mit einem Eintrag z.B. als erste Zeile in der index.php versuchen:
ini_set('pcre.backtrack_limit', 1000000);
wobei zu empfehlen ist, den Wert nicht gleich auf 1 Mio zu setzen, sondern moderat anzuheben um den Erfolg zu testen.
Wer ini_set nicht einsetzen kann, dem bleibt nur der Weg den Inhalt einer dicken Seite auf verschiedene Unterseiten zu verteilen.
Keine Panik - den Normalanwender wird es kaum treffen, es geht hier um die speziellen Anwender.