Ich habe auf einer Seite die Indexed Search Engine und die Macina Searchbox eingebaut. Gibt man einen Suchterm in der Searchbox ein, so öffnet sich zwar die Zielseite, jedoch mit einer Warning:
Warning: Invalid range end in .../class.tslib_search.php on line 256!
Das liegt daran, dass in dem regulären Ausdruck:
$delchars = [+-.,]$
ein Fehler ist:
Es muss heißen [+-.,]$ , weil das Minuszeichen für ein Angabe eines Zeichenbereiches verwendet wird. Sucht man nach dem String - so muss man ein Backslash vorstellen, um es von dem anderen Minus zu unterscheiden -!
Zuvor wird in der Klasse zwar die Funktion quotemeta() eingesetzt (Zeile 232), die folgendes tut:
string quotemeta ( string str)
Der Inhalt von str wird mit einem Rückstrich ("Backslash", ) vor jedem Vorkommen von . \ + * ? [ ^ ] ( $ )
Hier ist aber kein - Zeichen mitinbegriffen! Daher der Fehler. Bei mir tauchte er auf und ich habe den Quelltext entsprechend geändert:
Zeile 229: function split($origSword, $specchars='+-', $delchars='+-.,') {
Zeile 232: $delchars = '['.$delchars.']';
Ich arbeite unter PHP 4.1.2. Hat es sich in anderen PHP-Versionen geändert?