Разделить URL с помощью PHP - PullRequest
0 голосов
/ 21 марта 2019

Привет, я новичок в PHP, и для моего домашнего проекта мне нужна помощь, где я хочу разделить значения в URL.

$url = "http://localhost/Sub/Key/Key_XYZ_1234.php";

url также может быть:

$url = "http://localhost/Sub/Key/Key-XYZ-1234.php";

значение ключа может быть «ABC-TT» или «ABC_TT» или просто «ABC»

ожидаемый результат $v1 = value of Key; $v2 = value of XYZ; $v3 = value of 1234;

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вы можете сделать это с помощью комбинации parse_url, basename и preg_split.Мы используем preg_split, поэтому мы можем иметь дело с - или _:

$url = "http://localhost/Sub/Key/Key-XYZ-1234.php";
$path = parse_url($url, PHP_URL_PATH);
$file = basename($path, '.php');
list($v1, $v2, $v3) = preg_split('/[-_]/', $file);
echo "\$v1 = $v1\n\$v2 = $v2\n\$v3 = $v3\n";

Выход:

$v1 = Key 
$v2 = XYZ 
$v3 = 1234

Демонстрация на 3v4l.org

0 голосов
/ 21 марта 2019

Что-то вроде ....

//this is psuedo code, but you can look up the function names to see how to use them

$path=parse_url($url, PHP_URL_PATH);
$sep="-";
if(strpos($path,$sep)===false){
   $sep="_";
}
$pieces=explode($sep,$path);
$key=$pieces[0];
$a=$pieces[1];
$nums=$peices[2];
...