2009-11-04 139 views
0

我試過功能:strstr,但它有一個問題。假設,網址是這樣的:刪除URL部分和文件擴展名與strstr

http://www.example.com/index.php 

用的strstr,我能夠刪除之前「/」什麼,但我只想:

指數

即文件的實際名稱沒有擴展。

回答

3

如果它總是以.php結束,你可以這樣做:

basename('http://www.example.com/index.php', '.php') 

如果它能夠與其他擴展名結尾,你可以這樣做:

if (preg_match('#([^/]+)\.\w+$#', 'http://www.example.com/index.php', $matches)) 
    $basename = $matches[1]; 
+0

@reko_t:它有時可能以.html結尾。 – RKh 2009-11-04 10:04:26

+0

編輯我的答案考慮到這一點。 – 2009-11-04 11:48:54

6

我會強烈建議使用PHP parse_url()功能:

$address = 'http://www.example.com/index.php'; 
$url = parse_url($address); 
echo $url['host']; 

沒有點重新發明輪子。

4

如果文件類型可以改變,你是確定沒有其他。在文件名中例如index.2.php那麼你可以使用

$filename = basename('http://www.example.com/index.php'); 
$filename = substr($filename, 0, strpos($filename, '.')); 
3

+1克萊圖斯爲合適的工作的正確工具,正確的URL解析器。正則表達式黑客將失敗的各種查詢字符串的東西。

然而,它是這裏尋找的不是主人的最後路徑部分。所以:

$url = parse_url($address); 
$filename= array_pop(explode('/', $url['path'])); 
$filestem= explode('.', $filename)[0]; 
0

它很簡單,不需要太多代碼。

只是做手工,它會自動readed

只寫你的網址一樣,

 http://www.example.com/index 

,它會顯示你的文件,因爲名爲.php到底。