Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] preg_match_all pl znaki
tenloginjestzaje...
post 22.09.2020, 15:04:25
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

Ostrzeżenie: (0%)
-----


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;


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
gino
post 22.09.2020, 16:23:10
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kreatiff
post 23.09.2020, 08:02:18
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


Jeśli chodzi o to, że ucina Ci wyraz przed polską literą, to do swojego wyrażenia regularnego dodaj modyfikator u.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 23:29