Доброго времени суток. Возникла сложность с удалением части текста с переменной. Вот есть переменная: PHP: $url = 'https://yandex.ru/search/'; Вот надо удалить все, и оставить только, что-бы отображалось слово: search У меня же выводится со слешем search/... Не могу сообразить, как удалить слешь : PHP: $url = 'https://yandex.ru/search/'; $newUrl = explode('yandex.ru/', $url); echo $newUrl[count($newUrl)-1]; Подскажите пожалуйста, как удалить слешь?
С этой задачей справилась... А можно как-то укоротить код? Имеется такая переменная: PHP: $url = 'https://yandex.ru/old/search/?text=примеры'; Необходимо вывести только слово: примеры Использую вот так: PHP: $url = explode('/', $url); $url = explode('=', $url[3]); А можно в одну строку как-то?
PHP: echo explode('=', 'https://yandex.ru/old/search/?text=примеры')[1]; @Sofia зачем в одну строку то?
вот жеж блин... точно =) Спасибо огроменное! =) п.с. вот я чувствовала, что можно проще... но запуталась и пошла другим путем.
@Sofia, PHP: <?php print_r ( $c = parse_url ( 'https://yandex.ru/search/old/2?text=примеры' ) ); echo explode ( '/', trim ( $c['path'], '/' ) )[0]; parse_str ( $c['query'], $get ); echo $get['text']; Это на будущее с другими факторами
Сталкнулась с усложнением задачи. Итак, если в адресной строке присутствует адрес: https://yandex.ru/old/search/?text=примеры, мне надо, что-бы отобразилось слово примеры, код разобрали: PHP: echo explode('=', 'https://yandex.ru/old/search/?text=примеры')[1]; Я таким образом определяю, что за окно, и вывожу заголовок: HTML: <title><? echo $initial_page[explode('=', $_SERVER['REQUEST_URI'])[1]]; ?></title> Соответственно имеется список: PHP: $initial_page = array( "примеры" => "Страничка с примерами", "примеры2" => "Еще одна страничка с примерами", "index" => "Главная страничка", "testing" => "Тестовая страничка"); и если я открываю страничку https://yandex.ru/old/search/?text=index, то у меня в заголовке пишется "Главная страничка" Теперь у меня добавились адреса, т.е. как есть такие: https://yandex.ru/old/search/?text=index так есть и такие: https://yandex.ru/old/search/?text=index&perform=примеры Соответственно код: PHP: echo explode('=', 'https://yandex.ru/old/search/?text=примеры')[1]; больше не работает. Как добиться, что-бы к примеру ссылка https://yandex.ru/old/search/?text=index слово index добавлялось в переменную $link1 а если ссылка такая https://yandex.ru/old/search/?text=index&perform=примеры, то переменная $link1='index'; и появлялась вторая переменная $link2='примеры'; Это вроде как цикл какой-то надо использовать?
Догадываешься почему? 0 - https://yandex.ru/old/search/?text 1 - index&perform 2 - примеры Как там на счет
Я с этим не разобралась пока что... Пока что сделала так: PHP: if (explode('=', $_SERVER['REQUEST_URI'])[2]) {$title = $initial_page[explode('=', $_SERVER['REQUEST_URI'])[2]];} else {$title = $initial_page[explode('=', $_SERVER['REQUEST_URI'])[1]];} echo $title;
PHP: $link = 'https://yandex.ru/old/search/?text=index'; $parsedLink = parse_url($link); if(isset($parsedLink['query'])){ parse_str($parsedLink['query'], $query); var_dump($query); }
Всеравно мне непонятно, как этим пользоваться. Из этой ссылки: https://yandex.ru/old/search/?text=index&perform=примеры выводит: array(2) { ["text"]=> string(5) "index" ["perform"]=> string(14) "примеры" } А из этой: https://yandex.ru/old/search/?text=index выводит: array(1) { ["text"]=> string(5) "index" } Не совсем понимаю, как тут можно с массивом играть =(
Массив данных параметров из url с значениями. Пользуйся как хочешь. Что не понятно? Что сделать хочешь?
Я хочу понять, как правильно заголовок страницы обозначать. Странички статические, поэтому пока что в голову пришло определять странички с помощью элементов скрипта. Вот смотри, приведу живой пример (доступен для просмотра тут). Сайт состоит из 3 файлов: config.php, header.php, index.php. В файле config.php находится массив, вот весь файл: PHP: <?php //Определение переменной TITLE $initial_page = array( "index" => "Главная страница", "files" => "Файловый раздел", "user" => "Пользовательский раздел"); // ?> В файле header.php как раз я использую функции разделителя элементов скрипта: PHP: <? // Send headers header('Content-type: text/html; charset=UTF-8'); header('Cache-Control: private, no-cache="set-cookie"'); header('Expires: 0'); header('Pragma: no-cache'); // Send headers include "config.php"; ?> <!doctype html> <html lang="ru"> <head> <? if (explode('=', $_SERVER['REQUEST_URI'])[2]) {$title = $initial_page[explode('=', $_SERVER['REQUEST_URI'])[2]];} else if (explode('=', $_SERVER['REQUEST_URI'])[1]) {$title = $initial_page[explode('=', $_SERVER['REQUEST_URI'])[1]];} else {$title = "Главная страница";} ?> <title>Название - <? echo $title; ?></title> </head> <body> Шапка сайта<br> <a href="?page=index">Главная страничка</a> :: <a href="?page=files">Файловый раздел</a> :: <a href="?page=user">Пользовательский раздел</a> <hr> Ну и само основное тело index.php: PHP: <? include "header.php"; $page = (isset($_GET['page']) && !empty($_GET['page']))?trim($_GET['page']):'index'; switch($page) { case 'index': echo 'Должно в заголовке писаться: <b>Название - Главная страничка</b>'; break; case 'files': echo 'Должно в заголовке писаться: <b>Название - Файловый раздел</b>'; break; case 'user': echo 'Должно в заголовке писаться: <b>Название - Пользовательский раздел</b>'; break; default: echo 'Страницы нет'; break; } ?> На данном примере используется только один разделитель =, поэтому можно было использовать без PHP: explode('=', $_SERVER['REQUEST_URI'])[2] Но вот если добавить например в раздел files еще страницы: Заменить это: PHP: case 'files': echo 'Должно в заголовке писаться: <b>Название - Файловый раздел</b>'; break; на это: PHP: case 'files': echo 'Должно в заголовке писаться: <b>Название - Файловый раздел</b>'; $perform = (isset($_GET['perform']) && !empty($_GET['perform']))?trim($_GET['perform']):'file_list'; switch($perform) { case 'file_list': echo '<br>Должно в заголовке писаться: <b>Название - Все файлы</b>'; break; case 'file_add': echo '<br>Должно в заголовке писаться: <b>Название - Добавить файл</b>'; break; default: echo '404.php'; break; } break; то тогда понадобится использовать и PHP: explode('=', $_SERVER['REQUEST_URI'])[2] Так вот к чему я веду... Может есть вариант попроще с определением заголовка? Мне кажется что надо не массив использовать, а функцию... Или так тоже нормально?
PHP: function route ($url, $v){ if($url === 'index'){ echo "Главная страница"; }else if($url === 'Файловый раздел'){ if($v === 0){ echo 'фаил 1'; }else if($v === 1){ echo 'фаил 2'; }else{ echo "Главная страница"; } }else if ($url === 'user'){ echo "Пользовательский раздел"; }else{ echo "Главная страница"; } } И передаем: PHP: route ('index', 0); Очень грубо но как то так можно