Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_replace + str_replace, zamiana tekstu w linki, usunięcie znaku + z anchora
tenloginjestzaje...
post
Post #1





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

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


Witam
Nie mogę sobie poradzić z usunięciem znaku + z anchora linku:
  1. $preg_replace = array('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-+żźśłąęóŻŹŚŁĄĘÓ.-]*(\?\S+)?[^\.\s])?)?)@',);
  2. $search_replace = array('<a href="$1">$1</a>');
  3. $string = preg_replace($preg_replace, $search_replace, $string);


Kompletnie nie wiem jak się za to zabrać, dzięki
Ps. str_replace w $search_replace nie działa.

Ten post edytował tenloginjestzajety 14.03.2019, 19:42:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tenloginjestzaje...
post
Post #2





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

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


Pobieram tekst z bazy z adresami http oraz https, które zamieniam na linki. W tekście tym są również adresy http mojej strony, której podstrony zawierają znak + w miejscu spacji

Zapis w bazie:
Jakiś tekst tekst https://mojastrona.pl/podstrony/jakaś+podstrona tekst tekst

W efekcie otrzymuje taki link, bo stosuje jeszcze str_replace :
  1. str_replace('">https://mojastrona.pl/podstrony/', '">', $string)


czyli otrzymuje taki link w tekście:

jakaś+podstrona a chciałbym pozbyć się jeszcze tego plusa w tytule linku, bo w adresie musi być czyli patrząc na kod źródłowy pożądany efekt to:

<a href="https://mojastrona.pl/podstrony/jakaś+podstrona">jakaś podstrona</a> pozostałe strony jako linki w tytule zawierają cały adres strony, bo na nich mi nie zależy czyli:
<a href="http://forum.php.p">http://forum.php.pl</a> i to jest ok, dotyczy tylko podstron mojej domeny.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 00:06