Cześć.
Używam jako wyszukiwarki na swojej stronie skryptu DGS Search. Jestem z niego zadowolony. Jednak po przeniesieniu na inny serwer (zapewne jest na nim zainstalowana nowsza wersja PHP) mam z nim problem. Chodzi o linię:
$installBase = ereg_replace("(^.*)[/\\]$", "\\1", $config["installBase"]);
Przerobiłem ją do postaci:$installBase = preg_replace("/(^.*)[/\]$/", "\1", $config["installBase"]);
wstawiając ukośniki we wzorcu, jednak przy uruchamianiu skryptu wyświetla mi się informacja:
> Warning: preg_replace() [function.preg-replace]: Unknown modifier '\' in /home/elnarnst/public_html/elnar/wyszuk/search.php on line 17
Gdy ukośniki zastąpiłem znakami**#**, wyświetlił mi się komunikat:
> Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 10 in /home/elnarnst/public_html/elnar/wyszuk/search.php on line 17
Próbuję zgłębić tajniki wyrażeń regularnych, ale nie mogę pojąć m.in. tego, dlaczego przed dwoma backslashami jest ukośnik. Jeżeli nawiasy kwadratowe oznaczają **wyłącznie jeden znak**, to jaki w końcu w tym miejscu spełnia wymagania?
Co ciekawe, w wersji z ereg_replace() skrypt działał właściwie. Mam za mało kwadratowy łeb, żeby to wszystko pojąć... Pomoże mi ktoś?