2016-11-28 62 views
1

字符串我想從URI替換文件名。我需要在網頁上更換此網址。 示例: 網頁網址:

https://www.domain.com/...../india-hotels/dun-hotels/abc.php 

我的代碼

echo $uri=$_SERVER['REQUEST_URI']; 

它返回

...../india-hotels/dun-hotels/abc.php 

但我不需要 「abc.php」。我需要這樣的

...../india-hotels/dun-hotels/ 

這應該用php來完成,因爲我會在我的網頁上使用它。 請建議我解決這個問題。

+3

你最後的3個網址是相同的 – matiaslauriti

+0

這也可以通過.htaccess完成。 –

回答

0

啓用阿帕奇重寫模塊。

寫在你的的.htaccess文件

RewriteCond %{THE_REQUEST} /index\.php [NC] 

RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE] 
0

我解決它像這樣

$uri_ar=array(); 
$uri=($_SERVER['REQUEST_URI']); 

if(strpos($uri,'.php')){  
    $uri_ar=explode('/',$uri); 

    array_pop($uri_ar); 
    $uri=implode('/',$uri_ar); 

} 
1

你可以使用簡單規則explode & implode得到你想要的東西如由下面的代碼段。 Quick-Test Here

<?php 

     // ASSUMING THAT $_SERVER['REQUEST_URI']; RETURNS THE STRING BELOW: 
     $uri = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php"; 
     $parts = explode("/", $uri); 
     array_pop($parts); 
     $uri = implode("/" , $parts) . "/"; 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/ 

或者甚至是最好,你可以結合使用basename()功能的str_replace()來達到同樣的目標:

<?php 

     // ASSUMING THAT $_SERVER['REQUEST_URI']; RETURNS THE STRING BELOW: 
     $uri  = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php"; 
     $baseName = basename($uri); 
     $uri  = str_replace($baseName, "", $uri); 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/ 

壓縮形式:

<?php 

     $uri  = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php";; 
     $uri  = str_replace(basename($uri), "", $uri); 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/