sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.

Как использовать часть URL как переменную?

Есть php страница, в которой иногда нужно менять переменную $channel
пример test.php

<?php
//ИМЯ КАНАЛОВ "svm.sport" , "svm.music" ,  "svm.loop" 
$channel = "svm.best"; 

?>

<!DOCTYPE html>
<html>
   <head>
      <title><?php echo $channel; ?></title>
<!-- ... БЛА-БЛА-БЛА -->

<?php
// <!-- ... БЛА-БЛА-БЛА -->

?>



Как сделать так, чтобы она(переменная) читалась из URL , например после ?
https://site/test.php?svm.best

PS
сделал как подсказал alexalexes
<?php
// значение по умолчанию
$default_channel = "svm.loop";
// если в GET-параметрах присутствует ключ channel и это значение не пустое
if(isset($_GET['channel']) && $_GET['channel'] != '' )
{
// ..., то переменная равняется этому значению
$channel = $_GET['channel'];
}
else // иначе, берем значение по умолчанию
$channel = $default_channel;
?>
  • Вопрос задан
  • 153 просмотра
Решения вопроса 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Язык нужно учить!

<?php echo $_REQUEST[$channel]; ?>

Или более сложный вариант, точно соответствующий формулировке задачи:
<?php parse_str($_SERVER['REQUEST_URI'], $output); $output = array_keys($output); echo $output[0]; ?>
Ответ написан
@alexalexes
Типичный кейс, как использовать GET-параметры, если известен их список допустимых значений.
<?php
// список допустимых значений переменной $channel
$allow_channel_list =  ["svm.sport" , "svm.music" ,  "svm.loop"];
// значение по умолчанию
$default_channel = "svm.best";
// если в GET-параметрах присутствует ключ channel и значение по ключу входит в список допустимых значений...
if(isset($_GET['channel']) && in_array($_GET['channel'], $allow_channel_list))
{
// ..., то переменная равняется этому значению  
  $channel = $_GET['channel'];
}
else // иначе, берем значение по умолчанию
  $channel = $default_channel;
?>

<!DOCTYPE html>
<html>
   <head>
      <title><?php echo $channel; ?></title>
<!-- ... БЛА-БЛА-БЛА -->

<?php
// <!-- ... БЛА-БЛА-БЛА -->

?>

Использовать так:
test.php?channel=svm.best
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы