Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.12.07
Prihlásený: 12.02.24
Príspevky: 487
Témy: 138
Bydlisko: Bytča
Príspevok NapísalOffline : 06.12.2020 18:40

Tu som riesil preg_replace ktore pouzivam: https://www.pcforum.sk/spravne-nahradenie-eregi-replace-vt183174.html

nedari sa mi vyriesit jeden problem.

Momentalne mam kod:
Kód:
$prispevok["text"] = preg_replace("/(^| |>)(www([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"http://\\2\" target=\"_blank\" >\\2</a>", $prispevok["text"]);       
      
$prispevok["text"] = preg_replace("/(^| |>)(http([s]?):\/\/([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $prispevok["text"]);


- ak kod obsahuje www link tak mi to pekne namapuje a je to klikatelne. OK.

Moja poziadavka: Ak $prispevok["text"] obsahuje tieto presne specificke www adresy: http://www.adresa1.com, http://www.adresa2.com, http://www.adresa3.com ... v hociakom tvare, t.j. priklad http://www.adresa1.com/clanky/123/clanok1 atd atd ...

Tak pre tieto 3 adresy chcem aby som to mal klikatelne, ale text viditelny na webe bude "Link na adresy"

Zatial to mam takto:

Kód:
if (stripos($prispevok["text"],'adresa1.com') !== false || stripos($prispevok["text"],'adresa2.com') !== false || stripos($prispevok["text"],'adresa3.com') !== false)
{ $premenna = 'Link na adresy';   } else {$premenna = '\\2';}
      
$prispevok["text"] = preg_replace("/(^| |>)(www([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"http://\\2\" target=\"_blank\" >$premenna</a>", $prispevok["text"]);       
      
$prispevok["text"] = preg_replace("/(^| |>)(http([s]?):\/\/([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"\\2\" target=\"_blank\">$premenna</a>", $prispevok["text"]);


Ak je v premennej $prispevok["text"] len 1 adresa napr: "Nejaky text http://www.adresa1.com a dalsi text"
- vsetko funguje spravne

Problem je ak v premennej $prispevok["text"] je viacero adries, napr.: "Nejaky text http://www.adresa1.com a dalsi text a dalsia adresa ktora nema byt upravena na Link na adresy http://www.inaadresa.com"

vtedy vsetky adresy sa mi upravia a klikatelny text Link na adresy je aj na adrese, na ktorej by nemal byt, na http://www.inaadresa.com

Dakujem, snad som to vysvetlil :)


Offline

Správca fóra
Správca fóra
Viac www liniek v odkaze a zmena specifickeho linku

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 08.12.2020 13:04

Riesenim je pouzit napr. preg_replace_callback, kde budes podla najdenej url nastavovat text linku







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.12.07
Prihlásený: 12.02.24
Príspevky: 487
Témy: 138
Bydlisko: Bytča
Príspevok Napísal autor témyOffline : 09.12.2020 22:17

uf, dakujem, ale nemam sajnu ako tuto funkcu by som mal pouzit.
tie regularne vyrazy su re mna spanielska dedina, pozeral som na popis https://www.php.net/manual/en/function.preg-replace-callback.php
le nie som vobec mudrejsi


Offline

Správca fóra
Správca fóra
Viac www liniek v odkaze a zmena specifickeho linku

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 09.12.2020 23:43

Kod, kde kontrolujes konkretne tvary adries a nastavujes, aky text bude pouzity v odkaze, zabalis do druheho parametra, zjednodusene:
Kód:
$prispevok['text'] = preg_replace_callback("@(http(s)?://)?(([a-zA-Z0-9])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s])@",
                        function($matches) {
                           $text = (stripos($matches[0], "adresa1.com") !== FALSE) ? "Link na adresy" : $matches[0];
                           return '<a href="http'.$matches[2].'://'.$matches[3].'">'.$text.'</a>';
                        },
                        $prispevok['text']);







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. phpBB3 - Zmena linku

v Redakčné systémy

5

703

01.06.2010 17:36

DARSON Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Modelovanie vyrobnych liniek v 2D

v Grafické programy

4

456

08.02.2015 18:48

Slayer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba v odkaze?

v PHP, ASP

3

433

14.12.2007 19:01

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pouzitie # v odkaze

v HTML, XHTML, XML, CSS

3

410

18.06.2009 13:11

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. http://www.mujweb.cz/www/zasmejse podobný script,ale dlhši

v JavaScript, VBScript, Ajax

7

1544

27.12.2008 11:18

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. AKo spraviť www.**.sk aby sa dala spustiť bez pisania www

v Ostatné

15

1310

12.07.2008 19:02

jablko05 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I/P: IT knihy Flash8, Tvorba WWW stranek a Programovani WWW

v Predám

11

646

01.04.2014 20:12

jtbs Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. premenna/hodnota v odkaze

v JavaScript, VBScript, Ajax

2

527

10.05.2009 18:03

zaciatocnik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nastavenie Height v odkaze, css

v HTML, XHTML, XML, CSS

3

604

22.10.2009 13:36

Krtko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. moze sa sam menit pocet liniek na PCIe porte?

v ATI/AMD grafické karty

8

608

02.01.2008 21:19

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel premenná v odkaze na bunku

v Ostatné programy

0

226

25.08.2014 20:54

m6692 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Presmerovanie www na non-www

v Internetový marketing, SEO, reklama

10

1011

24.01.2012 23:18

yanci12 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zakódovanie linku

v PHP, ASP

2

397

31.10.2011 16:04

richo9996 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. www vs. non-www

v Domény

6

767

24.05.2017 18:12

McLovin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. www a non-www

v Webhosting a servery

6

937

02.12.2010 13:25

Vlad Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [VYRIESENE] vytvorenie linku

v PHP, ASP

1

509

11.02.2009 13:41

Tominator Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra