Regulární výrazy – překlad adres
- kokoumes
- Člen | 39
Zdravím chtěl jsem se zeptat. Potřebuju udělat překlad adres z výpisu
z databáze.
Např. z <a href="article=217">text</a>
na <a href="kategorie/produkt">text</a>
chtěl jsem na to použít
<?php
public static function _($value,$base=null){
return preg_replace(‚~\<a\shref=([„\‘])([^“\‚])[„\‘]>(.)<\/a>~‚, '<a href=“‘.self::getAdress(‚\\2‘,$base).‚">\\3</a>‘, $value);
}
public static function getAdress($adr,$base){
$param = explode(„=“, $adr);
if($param[0]== „article“ && isset($param[1])){
//sestavení adresy z db
$url;
}
return $base.„/“.$url;
} ?>
Potíž je v tom, že v $adr
je jako string \2, ale pokud hodím
$adr
rovnou do return tak je tam správně
article=217
Nevíte co s tím, kde dělám chybu?
Předem díky
- awsickness
- Člen | 98
za prve nevim jake je spojeni s nette.
takze pokud to opravdu delas na nette procti si routovani pripadne jak se delaji
custom routery.
- Tomáš Votruba
- Moderator | 1114
@kokoumes: Přes preg_replace
se toto
neřeší.
Doporučuji video – Jan Smitka – Routování (podklady), zhruba v 2. polovině je návod na vlastní routy.
Editoval Schmutzka (26. 3. 2012 18:28)
- kokoumes
- Člen | 39
Video dobrý díky, ale nevím jestli když budu mít uložený článek
v DB s odkazem article=24
tak při zobrazení stránky mi
šablona sama upraví zdroj podle routy na
např.psi/volne-lozeny/ihned
kde ihned je přímo ten článek
article=24
a ostatní části adresy před si udělám podle
kategorií z DB.. O to mi hlavně jde. Tohle by přes ty routy šlo?
- Tomáš Votruba
- Moderator | 1114
kokoumes napsal(a):
Video dobrý díky, ale nevím jestli když budu mít uložený článek v DB s odkazem
article=24
tak při zobrazení stránky mi šablona sama upraví zdroj podle routy na např.psi/volne-lozeny/ihned
kde ihned je přímo ten článekarticle=24
a ostatní části adresy před si udělám podle kategorií z DB.. O to mi hlavně jde. Tohle by přes ty routy šlo?
Jestli to dobře chápu, chceš mít odkaz:
<a n:href="Article:default id => 24">Článek</a>
který povede na url web.cz/psi/volne-lozeny/ihned
. Přes
vlastní router to jistě půjde, vrátíš kromě názvu stránky
(ihned
) i jeho kategori/e. Nejdřív bych zkusil zprovoznit
převod id
na název článku, přidat kategorii před už pak
nebude problém.
- kokoumes
- Člen | 39
To hlavní co potřebuju je, abych mohl ukládat text s odkazem na článek
do databáze ve tvaru
<a href="article=217">odkaz na článek</a>
například
pomocí tinyMce Prostě v DB musí být uložený v textu odkaz s id
článku, ale potom co si vypíšu text do prohlížeče musí být ve zdroji
hezká url např
<a href="web.cz/psi/volne-lozeny/ihned místo article=217">odkaz na článek</a>
Asi to popisuju nějak divně :-)
- ricco24
- Člen | 141
Podľa toho čo tu popisuješ si potrebuješ napísať vlastnú databázovú routu ktorá bude robiť nasledovné –
- pri routovani z URL do aplikácie bude prekladať z www.example.com/cesta/k/clanku na ID článku
- pri vytvarani odkazu bude routovať z ID článku na www.example.com/cesta/k/clanku
Naštuduj si tieto vlákna
Editoval ricco24 (27. 3. 2012 0:14)