Если вы хотите, чтобы параметры, передаваемые строкой запроса в текущий исполняемый скрипт, вам просто нужно:
$genres = preg_grep('!^genre!', array_keys($_GET));
$out = implode('_', $genres);
Здесь вы отфильтровываете все параметры, которые начинаются с genre
с использованием preg_grep()
, и получаете список имен параметров с использованием array_keys()
.
Если у вас есть URL-адрес, который необходимо проанализировать, используйте этот фрагмент:
$url = 'file.php?search=keyword+here&genre1=1&genre4=1&genre19=1&genre181&director=436&actor=347&search_rating=3';
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);
$genres = preg_grep('!^genre!', array_keys($params));
echo implode('_', $genres);
Разница в том, что вы используете parse_url()
для извлечения строки запроса и parse_str()
для разбора строки запроса.
Выход:
genre1_genre4_genre19_genre181