Extragere doar cale directoare din adresa URL

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Stefan
Mesaje:117

Extragere doar cale directoare din adresa URL

Salut, cum as putea sa afisez doar directoarele dintr-un url?

Ex: ceva.ro/folder1/folder2/folder3/fisier.php?x=2&y=3

Sa afiseze doar : folder1/folder2/folder3

MarPlo Mesaje:4343
Salut,
Poti sa folosesti in php functia parse_url() (adresa url sa aibe la inceput "http://" sau "https://"), apoi dirname().
Exemplu:

Cod: Selectaţi tot

$url ='http://ceva.ro/folder1/folder2/folder3/fisier.php?x=2&y=3';
$ar_url = parse_url($url);

var_export($ar_url); //['scheme'=>'http', 'host'=>'ceva.ro', 'path'=>'/folder1/folder2/folder3/fisier.php', 'query'=>'x=2&y=3']

$path_dir = dirname($ar_url['path']);
echo $path_dir; // /folder1/folder2/folder3
Sau cu preg_match() si RegEx potrivit (aici functioneaza cu sau fara "http" la inceput).

Cod: Selectaţi tot

$url ='ceva.ro/folder1/folder2/folder3/fisier.php?x=2&y=3';
$path_dir = preg_match('@/([A-z0-9_/-]+)/.*@', $url, $m);

var_export($m); //[0=>'/folder1/folder2/folder3/fisier.php?x=2&y=3', 1=>'folder1/folder2/folder3']

echo $m[1]; // folder1/folder2/folder3