Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - zamiana na link
Forum PHP.pl > Forum > PHP
Civil
Witam, mam taki problem. Otóż czy da się za pomocą wyrażeń regularnych zrobić coś takiego by w zadanym stringu nastąpiła zamiana tekstu
z np. {{strona|nazwa}} na <a href=strona>nazwa</a> ?

Pozdrawiam.
kwiateusz
da

Kod
/{{([A-Za-z])\|([A-Za-z])}}/


regułka w ten deseń
barthpl
a dokładniej:
  1. <?php
  2. function linkTransformation( $matches )
  3. {
  4. return sprintf( '<a href="%s">%s</a>', $matches[1], $matches[2] );
  5. }
  6.  
  7. $text = 'To jest jakis tam tekst z linkami do strony {{stronaA|nazwaA}} i strony {{strona
    B|nazwaB}}.'
    ;
  8.  
  9. $pattern = '/{{([a-z]+)|([a-z]+)}}/i';
  10. $callback= "linkTransformation";
  11. $text = preg_replace_callback( $pattern, $callback, $text);
  12.  
  13. echo $text;
  14. ?>

Jako wynik otrzymasz:
  1. To jest jakis tam tekst z linkami do strony <a href="stronaA">nazwaA</a> i strony <a href="stronaB">nazwaB</a>.
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.