Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_match_all pl znaki
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
Witam
Przerabiam słowa zaczynające się na # na linki, ale mam problem z polskimi znakami, siedzę nad tymi wyrażaniem od 2 godzin. Dzięki

  1. $i = 1;
  2. $preg = preg_match_all('@#(.+?)\b@', $hashtag, $wynik);
  3. foreach(array_unique($wynik[1]) as $t){
  4. $titlehashtag.= $t.' ';
  5. if($t == $_GET['hashtag']) $showhashtag.= '<a class= "active" href="https://domena.pl/?hashtag='.$t.'">#'.$t.'</a>'; else $showhashtag.= '<a href="https://domena.pl/?hashtag='.$t.'">#'.$t.'</a>';
  6. if ($i++ == 20) break;
gino
nie wiem czy o to Ci chodzi jak chcesz przerobić polskie hashtagi na linki to spróbuj tego (to nie mój kod, ale kiedyś używałem):
Kod
function convertHashtags($str){
    $str = preg_replace('/#+([a-ząćęłńóśźżA-Z0-9_]+)/', '<a href="https://domena.pl/?hashtag=$1">$0</a>', $str);
    return($str);
}

$string = "To są tagi: #reset, #gałąź a to tag #wyściółka";
$string = convertHashtags($string);
echo $string;


Jak nie to napisz dokładnie jaki problem.

gino
kreatiff
Jeśli chodzi o to, że ucina Ci wyraz przed polską literą, to do swojego wyrażenia regularnego dodaj modyfikator u.
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-2024 Invision Power Services, Inc.