PHP Wyrażenia regularne - Problem z polskimi znakami - rozwiązanie 
Rozwiązanie problemu polskich znaków w wyrażeniu regularnym, opisane na przykładzie pobierania tagów #tag z tekstu.
Zadanie:
Mamy napisać skrypt który pobierze z tekstu tagi w formie #tag i zamieni je na linki.
Opis rozwiązania:
Do rozwiązania tego zadania użyjemy wyrażeń regularnych w funkcji preg_replace:
<?php
function create_tags($text){
//przed #tag musi być spacja wiec zabezpieczamy sie jeśli ktoś użyje tagu na samym początku
$text = ' '.$text;
 
//To jest nasz wzór pobierający tag łacznie z polskimi znakami
$wzorzec = '{(\s#[ąćęłńóśźżĄĆĘŁŃÓŚŹŻ[:alnum:]][^\n\s\@\+\-\=\,\.\?\!\#\%\^\&\*\(\)]*)}';
 
//to wzró zamiany każdy #tag będzie zamieniony na link tag-nazwa
$zamiana = '<a href="tag-$1"><b><span class="blue">$1</span></b></a>';
 
//wykonanie zamiany
$text = preg_replace($wzorzec, $zamiana, $text);
 
//usuniędzie znaków z początku i końca lini
$text = trim($text);
 
//usunięcie spacji z linku adresowego
$text = str_replace('<a href="tag- #','<a href="tag-',$text);
return $text;
}
?>
function create_tags($text){
//przed #tag musi być spacja wiec zabezpieczamy sie jeśli ktoś użyje tagu na samym początku
$text = ' '.$text;
//To jest nasz wzór pobierający tag łacznie z polskimi znakami
$wzorzec = '{(\s#[ąćęłńóśźżĄĆĘŁŃÓŚŹŻ[:alnum:]][^\n\s\@\+\-\=\,\.\?\!\#\%\^\&\*\(\)]*)}';
//to wzró zamiany każdy #tag będzie zamieniony na link tag-nazwa
$zamiana = '<a href="tag-$1"><b><span class="blue">$1</span></b></a>';
//wykonanie zamiany
$text = preg_replace($wzorzec, $zamiana, $text);
//usuniędzie znaków z początku i końca lini
$text = trim($text);
//usunięcie spacji z linku adresowego
$text = str_replace('<a href="tag- #','<a href="tag-',$text);
return $text;
}
?>
Jak widac we wzorcu musieliśmy wypisać wszystkie znaki polskie aby były one akceptowane [:alnum:] odpowiada tylko za wszystkie cyfry i wszystkie litery angielskie
W rezultacie funkcja create_tags zwraca nam tekst wejściowy z linkami do tagów
Listing
niema
        	Dodano przez: igor  
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły 

:: Wymiana linków 
    
	Modowe inspiracje |
        Android Gry i Aplikacje |
        ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
        Logo dla firmy |
        Change Tires - Car Weather Forecast Reminder |
        Laminas: MVC Framework for PHP |
        IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS | 
        Katalog roślin |
        Programming articles: JAVA, PHP, C++, Python, JavaScript |
        Kancelaria Adwokacka Łukasz Huszno
        
    

 
  
				

 
                             
 


 
                        
 
		 
	