2

我想使用 php 撤销页面 url,但我想删除一些部分

<?php print("http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); ?>


Example: http://url.com/questions/page/112/
Result: http://url.com/page/112/

我想questions/在 url 中删除。我该怎么做?

4

8 回答 8

2
$url="http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
$url=str_replace('/questions','',$url);
echo $url;
于 2013-02-12T07:53:05.610 回答
1

您将需要使用 mod_rewrite,这是 apache 中可用的一个模块。这将由您的 Web 目录中的 .htaccess 文件管理。AdditionalBytes 为初学者提供了一个很好的 url 重写教程。

检查这个网站的详细信息

于 2013-02-12T08:00:48.027 回答
0

我会使用php的explode函数将示例拆分为一个由“/”分隔的数组,然后循环遍历数组,其中数组值=问题,取消设置或从数组中删除它。

// 示例 1

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

这是一个例子。

于 2013-02-12T07:47:44.517 回答
0

如果您只是想将其作为字符串删除,您可以使用

$url = str_replace('/questions', '', $_SERVER["REQUEST_URI"]);

如果您想将用户重定向到该页面,您需要发送一个标头(在任何输出之前):

header('Location: http://' . $_SERVER["HTTP_HOST"] . $url);
exit;
于 2013-02-12T07:48:21.997 回答
0

试试这个;

$str = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];

$parts = explode("/",$str);

$tmp = array();
for($i = 0; $i<count($parts)-2;$i++){
   $tmp[$i] = $parts[$i];
}

$output = implode("/",$tmp);
于 2013-02-12T07:49:29.327 回答
0

你可以使用这样的东西

$sentence = str_replace('questions/', '', 'http://url.com/questions/page/112/');
于 2013-02-12T07:50:21.657 回答
0
//This splits the uri into an array
$uri = explode("/",$_SERVER["REQUEST_URI"]);

//Then Remove the first part of the uri (ie questions)
$first_uri = array_shift($uri);

//Recreate the string from the array
$uri = implode("/", $uri);

//Print like in your example
print("http://" . $_SERVER["HTTP_HOST"] . $uri);

//You can also access the remove string (questions) in the $first_uri variable
print($first_uri); //returns questions
于 2013-02-12T07:52:39.673 回答
0
$url='http://'.$_SERVER['HTTP_HOST'].preg_replace('/^\/questions/i','',$_SERVER['REQUEST_URI']);
echo $url;
于 2013-02-12T08:03:36.110 回答