| 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