Autor | Zpráva | ||
---|---|---|---|
milbr Profil * |
#1 · Zasláno: 24. 10. 2009, 10:24:49
Pěkný den,
chtěl bych vás poprosit, je možné když do textu dám http://www.... aby byl odkaz v prohlížeči kliknutelný? Nějakým způsobem v PHP doplnit a Moc děkuji Milan |
||
Radek9 Profil |
#2 · Zasláno: 24. 10. 2009, 10:26:25 · Upravil/a: Radek9
$text = preg_replace("/(http[s]?:\/\/[^<> \n]+?)/i", '<a href="\\1" target="_blank">\\1</a>', $text); |
||
milbr Profil * |
#3 · Zasláno: 24. 10. 2009, 10:31:31
Moc díky za rychlou pomoc a pěknej víkend
|
||
milbr Profil * |
#4 · Zasláno: 24. 10. 2009, 10:41:30
Radek9:
Tak jsem to vyzkoušel ale je kliknutelné např z http://www.neco....cz pouze htt://w Ještě jednou díky Milan |
||
Radek9 Profil |
#5 · Zasláno: 24. 10. 2009, 10:47:45
milbr:
No to nevím co s tím máte. Já když jsem to zkoušel,tak to pouze htt:// nebralo. |
||
milbr Profil * |
#6 · Zasláno: 24. 10. 2009, 10:51:54
Radek9:
Část kódu vypadá takto: { while ($data_left=MySQL_Fetch_Array($obsah_left)): $textleft = nl2br($data_left['text']); $text_info = preg_replace("/(http[s]?:\/\/[^<> \n]+?)/i", '<a href="\\1" target="_blank">\\1</a>', $textleft); echo " <p style=\"margin-bottom: 18px;\"> <strong>".$data_left['textnadpis']."</strong> $text_info </p> "; endwhile; }; |
||
Slim12 Profil * |
#7 · Zasláno: 24. 10. 2009, 11:49:47
Když znate php tak proč pomoci regularnich výrazu nenapišete to co potrebujete.
|
||
AM_ Profil |
#8 · Zasláno: 24. 10. 2009, 13:42:23
Slim12:
děkujeme za hodnotný příspěvek, ale tazatel je zřejmě tak dobře nezná. $text = preg_replace('~([a-z0-9]+://[^\s]+)~i', '<a href="\\1" target="_blank">\\1</a>', $text); takto by to fungovat mohlo, Radek9: tohle ti v životě nemohlo běhat, zbytečně si komplikuješ život použitím / jako delimiter, nevím, co dělal ten ungreedy kvantifikátor +? na konci, rozepisovat jen některé bílé znaky je také zbytečné. Takto je to navíc univerzální i na další protokoly (ftp, atd...). Další zbytečná komplikace je použití " místo ', pak se ve výrazu musí víc escapovat a je to nepřehledné. Jde si s tím hrát různě, můžeš detekovat i odkazy bez protokolu začínající www., můžeš víc promakat, čím odkaz končí atd... stačí na webu hledat regulární výrazy pro odkaz. |
||
milbr Profil * |
#9 · Zasláno: 24. 10. 2009, 22:38:32
AM:
Tak to je paráda, funguje to a moc děkuji. Máte pravdu že regulární výrazy moc neznám, (téměř vůbec), mohl by jste mi stručně vysvětlit tuto část kódu? (co jednotlivé znaky mají za funkci) ~([a-z0-9]+://[^\s]+)~i Možná by to mohlo být přínosem i pro další méně zkušený. Ještě jednou moc dík Milan |
||
Časová prodleva: 14 let
|
0