Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenia regularne - tworzenie przyjaznych linków
Forum PHP.pl > Forum > Przedszkole
-bartek-
Cześć.
Piszę tego posta z prośbą o drobną pomoc przy wyrażeniach regularnych.
Chcę standardowe linki w PHP-Fusion zamienić na Seo Friendly. Konfiguracja apache jest gotowa, ale zmiana wszystkich linków w bazie manu zajęłaby mi wieczność.
Dlatego chcę zmienić je w locie, bezpośrednio przed generowaniem htmla dla odwiedzającego.
Znalazłem więc funkcję handle_output(), która odpowiada za przetworzenie wyjścia i dodałem do niej coś takiego:
  1. $output = preg_replace('@<a href="viewpage.php?page_id=(.)" class="side">(.)</a>@', '<a href="$1_$2" class="side">$2</a>', $output);
  2. return $output;

Problem jednak w tym, że taki kod nie działa. Wędrując po tutorialach znalazłem setki wersji - z małpkami, znakami | oraz ^ ograniczającymi wzór, ale chyba problem leży w innym miejscu.

Obecnie kod wygląda tak:
  1. <a href="viewpage.php?page_id=1" class="side">Link</a>

Czy bylibyście na tyle uprzejmi, by pomóc w skonstruowaniu wyrażenia zmieniającego ów kod na następujący:
  1. <a href="1_link" class="side">Link</a>


Z góry dzięki za pomoc!
Pozdrawiam
chmiello
  1. $output = preg_replace('/<a href=\"viewpage\.php\?page_id=(\d+)\" class=\"side\">(.*?)<\/a>/i', '<a href="$1_$2" class="side">$2</a>', $output);
-bartek-
Dzięki wielkie mistrzu! Działa tak, jak powinno.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.