Autor | Zpráva | ||
---|---|---|---|
4li3n Profil |
#1 · Zasláno: 17. 3. 2010, 10:24:11
Dobrý den,
chci se zeptat, jak mám vyescapovat tento řetězec, aby mi preg_replace nevratilo NULL (chyba).. Pokouším se o to už nějakou chvilku a ne a ne se dopracovat k cíly a myslím, že je problém prostě tady :-( $replace[]='<a href="/cs/info/'.$sl['id'].'-'.text_in_url($sl['title']).'.html" title="'.$sl['title'].'">'.$klic.'</a>'; |
||
Majkl578 Profil |
#2 · Zasláno: 17. 3. 2010, 10:53:42 · Upravil/a: Majkl578
Escapovat pomocí funkce preg_quote. V patternu chybí delimitery. Otázka je, zda je použití reguláru potřeba.
|
||
4li3n Profil |
#3 · Zasláno: 17. 3. 2010, 11:11:41
Díky, ale úspěchu jsem se nedočkal :-(
$slovnik=get_slovnik($conn,$db); $preg_arrays=make_preg_arrays($slovnik); $anotace=preg_replace($preg_arrays['searching'],$preg_arrays['replacement'],$anotace); a funkce make arrays //slovnik = asociativni pole s klici ['title'],['keyword'],['content'],['id'],['hidden'],['lang'], function make_preg_arrays($slovnik){ //$slovnik['keyword'] ====== klicova slova ktera budeme nahrazovat, oddelovacem je ";" // print_r($slovnik); $preg_arrays['searching']=array(); $preg_arrays['replacement']=array(); foreach($slovnik as $sl){ $keywords=explode(";",$sl['keyword']); foreach($keywords as $klic){ $preg_arrays['searching'][]=preg_quote($klic); $preg_arrays['replacement'][]=preg_quote('<a href="/cs/info/'.$sl['id'].'-'.text_in_url($sl['title']).'.html" title="'.$sl['title'].'">'.$klic.'</a>'); } } return $preg_arrays; } |
||
Majkl578 Profil |
#4 · Zasláno: 17. 3. 2010, 11:18:30
Majkl578:
„V patternu chybí delimitery.“ Např. ~ na začátku i na konci. Nestačilo by použít str_replace? |
||
AM_ Profil |
#5 · Zasláno: 17. 3. 2010, 12:38:14
Přesně tak, vždyť žádné regulární výrazy nepoužíváš, tak proč tam máš preg_replace
|
||
4li3n Profil |
#6 · Zasláno: 17. 3. 2010, 12:48:10 · Upravil/a: 4li3n
Stačilo, on se záměr těch funkcí od počátku pozměnil, předím by str_replace nestačilo, nyní už ano. Proto mi to tam zůstalo :-) Díky za rady, nějak jsem se s tím popral
|
||
Časová prodleva: 16 let
|
0