Как обрезать мой домашний URL на localhost - PullRequest
0 голосов
/ 29 августа 2018

Вот так я получаю свой URL на своем локальном хосте:

 $url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    echo $url;

возвращает: http://localhost/CodeSensei/menu, потому что я нахожусь на странице меню.

Как я могу обрезать это? Я только хочу "http://localhost/CodeSensei"

Я знаю, что могу обрезать это так

echo trim($url,"menu");

Но проблема в том, что «меню» динамическое, оно постоянно меняется в зависимости от страницы. Есть ли способ урезать мой URL, чтобы он всегда и только печатал "http://localhost/CodeSensei" на любой странице?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Есть много способов достичь этого. Вы можете играть с различными строковыми манипуляторами, такими как explode () и т. Д.

Вот решение с использованием explode()

$variable =  "http://localhost/CodeSensei/menu";
$variable = (explode("/",$variable));
$url='';

for($i=2;$i<count($variable)-1;$i++)
{  
    $url .= "/".$variable[$i];
}

$final_url = "http:/".$url;

echo $final_url;

Ваш вывод

http://localhost/CodeSensei
0 голосов
/ 29 августа 2018

Эта функция может вам помочь. Он получает URL-адрес и возвращает URL-адрес после последнего /.

<?php
function getSubUrl($originUrl) {
    $url = parse_url($originUrl);
    $url['scheme'] .= '://';
    $url['path'] = dirname($url['path']);

    return implode($url);
}


echo getSubUrl('http://localhost/CodeSensei/menu/123') . PHP_EOL;
// http://localhost/CodeSensei/menu
echo getSubUrl('http://localhost/CodeSensei/menu') . PHP_EOL;
// http://localhost/CodeSensei
echo getSubUrl('http://localhost/CodeSensei') . PHP_EOL;
// http://localhost/
echo getSubUrl('http://localhost/') . PHP_EOL; 
// http://localhost/
echo getSubUrl('http://localhost') . PHP_EOL;
// http://localhost
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...