2012-03-09 113 views
0

我有一個網站,我正在處理超過11000個產品頁面。他們寫的是.php如何獲得沒有擴展名的文件名?

我想將文件名稱(不帶文件擴展名.php)添加到識別當前頁面的文件中。

舉例: 如果文件名是

product1.php 

的代碼

$thisPage = "product1" 

的線路將被添加到每個頁面withing頂部PHP標籤。我試圖找到解決這個問題的時間比我想承認的要長,而我是一個PHP新手,看起來他們必須是一個簡單的解決方案。

任何幫助,將不勝感激


$currentPage = $_SERVER["PHP_SELF"]; 

是我知道的使用來獲取文件的名稱。我可以截斷$ currentPage從字符串中刪除「.php」。然後,我將留下我要寫入文件的文本。

我遇到的困難是將它寫入文件,而不是回顯名稱,而是實際將文件名作爲新字符串寫入以備後用。

因此,我將留下

$currentPage = "the-truncated-file-name-text" 

唯一的每個頁面使用索引

因此,像「寫($當前頁)」將文件

回答

2

php.net是一個美妙資源。

pathinfo函數是你想要的。它將路徑或文件名分割爲其組成部分。

或者,您可以在'。'上爆炸。

list($file, $ext) = explode('.',$myfile); 

將其寫入到文件中,然後調用

file_put_contents($filename, $stringtoadd, FILE_APPEND); 

但是請注意,這樣做將會使你的文件不再是有效的CSV文件的最後一行的格式不正確。

+0

但是,我如何將它作爲硬編碼字符串寫入當前文件? – ZombieBunnies 2012-03-09 23:21:09

4

這個怎麼樣?

$filename = basename(__FILE__, '.php'); 
+0

+1比我的回答更簡潔。 – Josh 2012-03-09 22:59:25

4
$thisPage = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME); 

你想遠離魔術常量像__FILE__離開,因爲他們將返回當前正在運行的文件,即,如果代碼是一個包含文件中,包含的文件的路徑將被退回,而不是訪問者所要求的腳本。

0

您可以使用scandir來獲取目錄中文件的列表。然後使用substr從文件名中刪除最後4個字符。

相關問題