如何在没有扩展名的情况下获取文件名?

时间:2012-03-09 22:53:49

标签: php filenames

我有一个我正在处理超过11000个产品页面的网站。它们写的是.php

我正在尝试将文件名(不带文件扩展名.php)添加到文件中以识别当前页面。

实施例: 如果文件名是

product1.php

一行代码

$thisPage = "product1"

将使用顶级PHP标记添加到每个页面。我试图找到一个解决方案的时间比我承认的要长,虽然我是一个PHP新手,但似乎它们必须是一个简单的解决方案。

非常感谢任何帮助


$currentPage = $_SERVER["PHP_SELF"]; 

我知道用什么来获取文件的名称。我可以截断$ currentPage从字符串中删除“.php”。然后我将留下我想写入文件的文本。

我遇到的困难是将其写入文件,而不是回显名称,但实际上将文件名写为新字符串供以后使用。

那么我将留下什么

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

每个页面的唯一用途索引

类似于“写($ currentPage)”到文件

4 个答案:

答案 0 :(得分:4)

这个怎么样?

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

答案 1 :(得分:4)

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

您希望远离像__FILE__这样的魔术常量,因为它们将返回当前运行的文件,即,如果代码位于包含文件中,则路径将返回包含文件的内容,而不是访问者请求的脚本。

答案 2 :(得分:2)

php.net是一个很好的资源。

pathinfo功能正是您想要的。它将路径或文件名拆分为其组成部分。

或者你可以爆炸'。'

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

将其写入您的文件,然后调用

file_put_contents($filename, $stringtoadd, FILE_APPEND);

但请注意,这样做会使您的文件不再是有效的CSV文件,因为最后一行的格式不正确。

答案 3 :(得分:0)

您可以使用scandir获取目录中的文件列表。然后使用substr从文件名中删除最后4个字符。