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=24tak při zobrazení stránky mi šablona sama upraví zdroj podle routy na např.psi/volne-lozeny/ihnedkde ihned je přímo ten článekarticle=24a 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)