Forum » Izdelava spletišč » Pretvarjanje povezave v link
Pretvarjanje povezave v link
<?php?> ::
Kako v PHPju narediš, da ko uporabnik vpiše v vnosno polje neko povezavo - http://... , da pri izpisu iz tega naredi link?
teac ::
< input type="text" name="link" value="http://" >
Link pa tako:
echo '< a href="'. $link . '">' . $link . '< /a >';
Zgodovina sprememb…
- spremenilo: teac ()
<?php?> ::
Ne, nisem mislil tako. Bom bolj natančno razložil.
Uporabnik v text box vpiše nek text (kot na forumu naprimer), v tem textu se nahaja tudi en http://... . No in nato klikne pošlji gumb in stvar gre v bazo. No sedaj bi pa rad vlekel iz baze in ko dam ven pretvorim http://.... v a href="http://..." . Nekako kot str_replace(), samo da to pač ne dela. Oviti vi moral povezavo v link. Nekako bi šlo z eval(), ampak ne vem kako, ker bi moral poznati kje je začetek povezave in kje konec... oz. začetek pri http:// ampak konec?
Uporabnik v text box vpiše nek text (kot na forumu naprimer), v tem textu se nahaja tudi en http://... . No in nato klikne pošlji gumb in stvar gre v bazo. No sedaj bi pa rad vlekel iz baze in ko dam ven pretvorim http://.... v a href="http://..." . Nekako kot str_replace(), samo da to pač ne dela. Oviti vi moral povezavo v link. Nekako bi šlo z eval(), ampak ne vem kako, ker bi moral poznati kje je začetek povezave in kje konec... oz. začetek pri http:// ampak konec?
darh ::
$text = preg_replace ("/(ftp|http|https):\/\/([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\">\\1://\\2</a>", $text);
$text = preg_replace ("/([\s|\"])([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\">\\2@\\3.\\4</a>", $text);
bo šlo ?
$text = preg_replace ("/([\s|\"])([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)/i", "\\1<a href=\"mailto:\\2@\\3.\\4\">\\2@\\3.\\4</a>", $text);
bo šlo ?
Excuses are useless! Results are priceless!
Zgodovina sprememb…
- spremenil: darh ()
<?php?> ::
Hm, najbrž ne...
Moram malo preštudirati funkcijo k mi je nova...
Se slišimo malo kasneje...:)
Moram malo preštudirati funkcijo k mi je nova...
Se slišimo malo kasneje...:)
<?php?> ::
Ja, samo to zdaj naredi link samo če je http:// vspredaj. Če ga ni linka ne bo. Pa sem hotel da bi naredil eno funkcijo za z http-jem in eno za brez, ampak potem se kregata med sabo...:)
Kaj naj sedaj naredim?
Pa tudi una za email mi ni delala...
Kaj naj sedaj naredim?
Pa tudi una za email mi ni delala...
darh ::
yao yao
men je tole delal BP... v spremenjivki $text maš pač en tekst, ki vsebuje (ali pa ne) linke (ki se začnejo ftp, http ali https (lahko tudi drugi, če se ti da dodajat)), in emaile ( nekdo@nekje.com )...
mora delat 100%...
p.s.: pa ne drkej po regular expresionih, če nimaš pojma kaj delaš !!!
men je tole delal BP... v spremenjivki $text maš pač en tekst, ki vsebuje (ali pa ne) linke (ki se začnejo ftp, http ali https (lahko tudi drugi, če se ti da dodajat)), in emaile ( nekdo@nekje.com )...
mora delat 100%...
p.s.: pa ne drkej po regular expresionih, če nimaš pojma kaj delaš !!!
Excuses are useless! Results are priceless!
<?php?> ::
OK, sem malo preštudiral to in če se ne motim bi moral stran dati tole:
(ftp|http|https):\/\/
Ker išče http ali ftp ali https zatem : in potem // ki pa imajo exape-e prej.
Samo ni mi čisto jasno kakšna je razlika med oklepaji in oglatimi oklepaji.
In pa tale del:
([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i
Mi ni čisto jasen. Najprej išče za a-z, nato 0-9 potem se pa začnejo ~#%@&:;=! a imajo kakšno posebno veljavo ti znaki ali gre pač za "navaden" znak?
Samo je dobra skripta, k spremeni v link tudi če imaš ? al & notri... pohvalno ...
(ftp|http|https):\/\/
Ker išče http ali ftp ali https zatem : in potem // ki pa imajo exape-e prej.
Samo ni mi čisto jasno kakšna je razlika med oklepaji in oglatimi oklepaji.
In pa tale del:
([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i
Mi ni čisto jasen. Najprej išče za a-z, nato 0-9 potem se pa začnejo ~#%@&:;=! a imajo kakšno posebno veljavo ti znaki ali gre pač za "navaden" znak?
Samo je dobra skripta, k spremeni v link tudi če imaš ? al & notri... pohvalno ...
darh ::
PHP ima quick-how-to v manualu za regular expresione...
taledva ti bom pa jaz razložu kar znam...
torej.. prvi ki pretvarja linke
/(ftp|http|https):\/\/([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i
/ - pač začetek regexp
(ftp|http|https) - pogoji, lahko ftp ali http ali https, če češ lahko tudi sam kakega dodaš oziroma pobrišeš
:\/\/ - to se prebere kot ://, torej trije znakci ki sledijo zgornjemu stringu (eskejpani morjao biti zato, ker ima znak / nek pomen v regexp)
([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+) - enkup "pravilnih" znakov... kot lahko opaziš vmes ni presledka (\s), saj bi ti v tem primeru text do konca spremenilo v link. tudi nove vrtice in tablulatorji prekinejo "match" (\n in \t). Vse ostale znake pa upošteva kot pravilne... od a do z, od 0 do 9, znake ~ # ? & in tko dalje... razen presledka seveda ;)
oglati oklepaji označujejo pričetek in konec definicije razreda znakov ;)) (character class definition). Plus (+) znak na koncu definicije, za ] pa pomeni, da mora biti vsaj en tak znak v tekstu, da je match uspešen (* za 0 ali več znakov, + za 1 ali več znakov...)
/ - z tem znakom zopet označimo konec regexp definicije
i - ta "PCRE modifier" pove, da nam ni važno, ali so znaki veliki ali majhni (hint: če nebi bilo tega modifajerja, gi mogli za vsak dan znak podati tudi jegovega večjega brata - a,A, b,B ali kako bi zgledala definicija: a-zA-Z ). Obstajajo tudi drugi modifierji, naprimer m, s, x... več o njih si lahko prebereš v manualu...
uh uh... xbite pridn.. ;)
taledva ti bom pa jaz razložu kar znam...
torej.. prvi ki pretvarja linke
/(ftp|http|https):\/\/([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i
/ - pač začetek regexp
(ftp|http|https) - pogoji, lahko ftp ali http ali https, če češ lahko tudi sam kakega dodaš oziroma pobrišeš
:\/\/ - to se prebere kot ://, torej trije znakci ki sledijo zgornjemu stringu (eskejpani morjao biti zato, ker ima znak / nek pomen v regexp)
([a-z0-9~#%@&:;=!',_ćřĺ\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+) - enkup "pravilnih" znakov... kot lahko opaziš vmes ni presledka (\s), saj bi ti v tem primeru text do konca spremenilo v link. tudi nove vrtice in tablulatorji prekinejo "match" (\n in \t). Vse ostale znake pa upošteva kot pravilne... od a do z, od 0 do 9, znake ~ # ? & in tko dalje... razen presledka seveda ;)
oglati oklepaji označujejo pričetek in konec definicije razreda znakov ;)) (character class definition). Plus (+) znak na koncu definicije, za ] pa pomeni, da mora biti vsaj en tak znak v tekstu, da je match uspešen (* za 0 ali več znakov, + za 1 ali več znakov...)
/ - z tem znakom zopet označimo konec regexp definicije
i - ta "PCRE modifier" pove, da nam ni važno, ali so znaki veliki ali majhni (hint: če nebi bilo tega modifajerja, gi mogli za vsak dan znak podati tudi jegovega večjega brata - a,A, b,B ali kako bi zgledala definicija: a-zA-Z ). Obstajajo tudi drugi modifierji, naprimer m, s, x... več o njih si lahko prebereš v manualu...
uh uh... xbite pridn.. ;)
Excuses are useless! Results are priceless!
Zgodovina sprememb…
- spremenil: darh ()
cahahopie ::
Wau! To ti je stari ta čorba katere sem se jaz v dolgih ovinikh izogibo. No vidm, da bom lahk s tem popravu velik svoje lame kode.
Hmm... prvazaprav pa sem jezn, ker zdaj bom pa spet hotu neki bolšga delat... že itak sem za rokom
P.S: Pridn, pridn ... kot zmeraj!
Hmm... prvazaprav pa sem jezn, ker zdaj bom pa spet hotu neki bolšga delat... že itak sem za rokom
P.S: Pridn, pridn ... kot zmeraj!
cahahopie ::
Hmm... namest preg_replace lahk uporabiš eregi_replece, ki je soroden ereg_replece le, da igonorira velike in male capse... Piše pa da je občasno počasnješi od prvega.
(vau..znam... ...vse v Manualu).
(vau..znam... ...vse v Manualu).
<?php?> ::
Tenx za "inštrukcije" in linke, pa se bom oglasil ko bom to preštudiral...
Pa še nekaj:
Nisi pa povedal čemu so ( in ). Vsaj zdi se mi.
Samo a nebi bilo če bi potem napisal *, da naj pogleda če http:// obstaja, in če naredi link, če pa ne, pa pravtako?
Pa še nekaj:
Nisi pa povedal čemu so ( in ). Vsaj zdi se mi.
Samo a nebi bilo če bi potem napisal *, da naj pogleda če http:// obstaja, in če naredi link, če pa ne, pa pravtako?
darh ::
general escape character with several uses
^
assert start of subject (or line, in multiline mode)
$
assert end of subject (or line, in multiline mode)
.
match any character except newline (by default)
[
start character class definition
]
end character class definition
|
start of alternative branch
(
start subpattern
)
end subpattern
?
extends the meaning of (, also 0 or 1 quantifier, also quantifier minimizer
*
0 or more quantifier
+
1 or more quantifier
{
start min/max quantifier
}
end min/max quantifier
Part of a pattern that is in square brackets is called a "character class". In a character class the only meta- characters are:
\
general escape character
^
negate the class, but only if the first character
-
indicates character range
]
terminates the character class
vse ti piše tukaj !!!
Excuses are useless! Results are priceless!
TylerDurden ::
Men je dosti bolj kul gumb oz. prompt, kjer vneseš link pa besedo pa ti potem zgenerira html link v tekst noter.
Let\'s make some soap ...
Tjulenj ::
kaksna je pa oznaka za enter? bi rad celoten textarea izpisal v samo eno vrstico, tud če je vnešen enter vmes
darh ::
read the goddamn f****n manual
samo to je od sistema do sistema (OS) razližno, tako daj e najbolje da narediš takole:
\n
newline (hex 0A)
\r
carriage return (hex 0D)
samo to je od sistema do sistema (OS) razližno, tako daj e najbolje da narediš takole:
\n|\r
.. that'z it... Excuses are useless! Results are priceless!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Javascript DOM based XSS vulnerabilityOddelek: Programiranje | 2869 (2291) | MrStein |
» | [php] brisanje nedovoljenih znakovOddelek: Izdelava spletišč | 1450 (1298) | keworkian |
» | PHP - stringiOddelek: Izdelava spletišč | 1808 (1631) | pehape |
» | [php]: preprost problem in preg_replace()Oddelek: Izdelava spletišč | 1141 (1079) | R33D3M33R |
» | Pomoč pri MySQL in PHP...Oddelek: Programiranje | 1820 (1688) | darh |