Привет, я новичок в 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;
заранее спасибо






Что-то типа....
//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];
Вы можете сделать это с комбинацией 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
Привет, Ник. Спасибо за ответ... это действительно работает. Можете ли вы также помочь мне с этим URL-адресом "$url = "localhost/Sub/index.php?a1=key/key-XYZ-1234.php";" с тем же ответом. Заранее спасибо
@ Мэдди, это немного сложнее... какие части index.php?a1=key/key-XYZ-1234.php ты хочешь сохранить?
Ключ, XYZ, только 1234
@ Мэдди, я думаю, изменение определения $path на $path = parse_url($url, PHP_URL_PATH) . parse_url($url, PHP_URL_QUERY); должно сработать
Спасибо, Ник, ваш код сработал так, как хотелось... вы спасли меня... :) благодарю вас за помощь.
@ Мэдди, не беспокойся. Рад помочь.
Возможный дубликат URL-адрес php взрывается