Salut, am un url de forma site.ro/articol-nou_r3_p7.html si doresc sa extrag din URI datele sub forma $r = 3 si $p = 7. $r reprezinta litera r din uri, $p p...
Ma puteti ajuta?
Salut, am un url de forma site.ro/articol-nou_r3_p7.html si doresc sa extrag din URI datele sub forma $r = 3 si $p = 7. $r reprezinta litera r din uri, $p p...
Ma puteti ajuta?
Salut,
1. parse_url($url,PHP_URL_QUERY); nu poti folosi ca sa-ti returneze parametri
2. trebuie interpretat linkul de forma:
care va returna un array de forma:Cod PHP:
//$url = $_SERVER['REQUEST_URI'];
$url = 'http://www.site.ro/articol-nou_r3_p7.html';
$temp[0] = explode('/',$url);
apoi:Array ( [0] => http: [1] => [2] => www. site.ro [3] => articol-nou_r3_p7.html )
Si iti va returna un array de forma:Cod PHP:
$temp[1] = end($temp[0]);
$temp[2] = explode('_',$temp[1]);
if(ereg('r',$temp[2][1])) $params['r'] = str_replace('r','',$temp[2][1]);
$temp[3] = $temp[2][2];
$temp[4] = explode('.',$temp[3]);
if(ereg('p', $temp[4][0])) $params['p'] = str_replace('p','',$temp[4][0]);
unset($temp);
print_r($params);
Bineinteles se poate face ceva si mai complex. Ideea e ca trebuie intrepretat link-ul. Codul de mai sus merge perfect daca inainte de _r(n) nu ai alt "_". Daca ai de gand sa bagi si alte "_" in titlul articolului de exemplu spune-mi si iti fac alt cod.Array ( [r] => 3 [p] => 7 )
O zi buna.
Ultima modificare făcută de Gabriel Puscuta; 14th August 2009 la 10:47.
Cam urata metoda de mai sus.
The easy way cu expresii regulate.
Output: r=3 p=7Cod PHP:
$string="articol-nou_r3_p7.html";
preg_match("/.*_r([0-9]+)_p([0-9]+)\.html/", $string, $matches);
$r=$matches[1];
$p=$matches[2];
print "r=".$r." p=".$p;
Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)