Autor Zpráva
Měsíček
Profil
Dělám si svoji knihu návštěv a narazil jsem na problém, nevím jak udělat odkaz (něco jak zde to v tom [xxx][/xxx]), není problém v Javascriptu ten jsem přelouskl, ale nevím jak to vložit do pole a pak to zredukovat .. útržky kódu :

Javascript / HTML

<td><img src="Smajly/b.png" onClick="smajlik('[/b]')"></td>
<td><img src="Smajly/i.png" onClick="smajlik('[/i]')"></td>
<td><img src="Smajly/u.png" onClick="smajlik('[u][/u]')"></td>
<td><img src="Smajly/a.png" onClick="smajlik('[urll=xxx][/urll]')"></td>

a PHP

$smajlici = array("*1*"=>"<img src='Smajly/1.gif'>","*2*"=>"<img src='Smajly/2.gif'>","*3*"=>"<img src='Smajly/3.gif'>","*4*"=>"<img src='Smajly/4.gif'>","*5*"=>"<img src='Smajly/5.gif'>","*6*"=>"<img src='Smajly/6.gif'>","*7*"=>"<img src='Smajly/7.gif'>","*8*"=>"<img src='Smajly/8.gif'>","*9*"=>"<img src='Smajly/9.gif'>","*10*"=>"<img src='Smajly/10.gif'>","[b]"=>"<b>","
"=>"</b>","[i]"=>"<i>",""=>"</i>","[u]"=>"<u>","[/u]"=>"</u>","[urll] "=>"<a href='","[/urll]"=>"'></a>");

záměrně dávám urll, aby to nevzalo teď jako odkaz ..

a potřebuji vědět jak to zařídit v tom poli, aby se z toho udělal odkaz .. nevíte nějáké nápady ?

Jinak tučné, kurzíva, podtržené funguje bezproblému jen ten odkaz mi dělá problém :-(
Taps
Profil
Měsíček
a co str_replace?
Str4wberry
Profil
Měsíčku, nakouknout do manuálu Tě nenapadlo?
preg_replace() popř. ereg_replace()
Měsíček
Profil
já bych totiž nejradši měl všechno v tom poli :-)
shadyyx
Profil
no to bude tim, ze v JS mas [ u r l = x x x ] a v PHP mas [ u r l ] => musis si osetrit oba pripady...

tedy pro '[urll][/urll]' ==>> "[urll]"=>"<a href=","[/urll]"=>"></a>"
a pro '[urll=xxx][/urll] to bude asi nejak takto: ==>> $str = concat("[urll=xxx]","="); $str[0]=>"<a href=".$str[1].">","[/urll]"=>"</a>"

samozrejme, bude potreba jeste predtim nejak testovat jestli to [urll] obsahuje "=" a podle toho pak rozhodnout...
Měsíček
Profil
jinak tam mám addslashes = to udělá tohle : <a href=\"\">adfdsaf</a> takže já potřebuji přes tohle pole tak jak dělám i to ostatní ..
Měsíček
Profil
shadyyx = Díky ten první mi funguje tak jak jsem potřeboval ten druhý ještě ne .., ale snažím se i o to :-)
shadyyx
Profil
pokud by ten druhy nefungoval, tak se na nej muzes vykakat...ten druhy je (ale asi jak vis sam) na to, ze uzivatel muze link na stranku schovat do [urll=link]ODKAZ[/urll] ... ten prvni pripad tedy bude omezen tim, ze cely link bude vypsan v textu, tedy [urll]link[/urll] - zalezi na tobe jestli tam chces mit vsechno...jen je s tim pak vetsi piplacka...

btw - takoveto JS/PHP "kultivatory" textu pro knihy navstev a diskuzni fora jsou volne k dispozici jiz hotova na webu, staci trosku zapatrat v googlu ;-)
Měsíček
Profil
jinak co je to za funkce concat(); ?
shadyyx
Profil
DPC...ja to opravil (editoval) ale ono mi to jeblo zpatky...

tam jsem se zmylil - concat() je prave opak co chceme my: tato funkce spojuje dva stringy...a my chceme aby se ten jeden rozdelil - takze to CONCAT prepis na EXPLODE - explode rozdeli string na tolik casti, kolikrat se v nem vyskytuje rozdelovaci znak - druhy argument, tedy v nasem pripade "=" -
$str = explode("[url=NEJAKY LINK]odkaz[/url]","="); PAK:
$str[0] = "[url";
$str[1] = "NEJAKY LINK]";
Měsíček
Profil
Takže tohle vedle :

$str = explode("[urll=xxx]","=");

a tohle do pole :

$str[0]=>"<a href=".$str[1].">","[/urll]"=>"</a>"
Měsíček
Profil
nebo

Tohle vedle :

$str = explode("[url=NEJAKY LINK]odkaz[/url]","="); PAK:
$str[0] = "[url";
$str[1] = "NEJAKY LINK]";

a tohle do pole :

$str[0]=>"<a href=".$str[1].">","[/urll]"=>"</a>"
shadyyx
Profil
no, ja bych to udelal asi tak (pac tam pak zustane ukoncovaci hranata zavorka v tom linku - "]") takze takhle asi:

nekde si musis ten string "[url=NEJAKY LINK]odkaz[/url]" ulozit (nacist) do promenny (nebo nevim jak ctes ty casti textu a jak v nich hledas dany stringy), zalezi tedy jeste jestli nacitas cely string "[url=NEJAKY LINK]odkaz[/url]", nebo nacitas "[url=NEJAKY LINK]", a pak uz jen "[/url]" (ten druhy zpusob by byl lepsi - treba do promenny $url nactes tuto nalezenou cast "[url=NEJAKY LINK" SCHVALNE BEZ UKONCOVACI ZAVORKY) a pak:

$str = explode($url,"=");
pak mame tyto promenny s timto obsahem: $str[0] = "[url" a $str[1] = "NEJAKY LINK";

v pripade ze muzes nacist jen celou cast "[url=NEJAKY LINK]" (tedy i s ukoncovaci zavorkou), pak je potreba PO explode() jeste udelat
$str1 = substring($str[1],0,-1)
(ta -1 by mela vzit prvni znak od konce, tedy orezat "NEJAKY LINK" o "]" a vybrat jen tu prvni cast)

a pak tohle do pole :

$str[0]=>"<a href=".$str[1].">","[/urll]"=>"</a>"[pre] NEBO [pre]$str[0]=>"<a href=".$str1.">","[/urll]"=>"</a>"


kdyby neco nefungovalo, trochu se s tim pohrej, ja jsem to psal z hlavy takze to jiste nebude slapat napoprve (az takovej machr zatim nejsem, co pise validni kody z hlavy)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: