如何从 PHP 中的文件名中获取特定单词?

How to get a certain word from a filename in PHP?

是否可以在以下文件名中获取单词 "Test"、"Prototype" 和 "Super":

MyCSV - Test.csv
MyCSV - Prototype.csv
MyCSV - Super.csv

使用 pathinfo() 去掉扩展名,然后使用 preg_split 用空格和连字符拆分单词,然后使用 array_unique 删除任何重复项,例如

$words=array_unique(preg_split("/[\s\-]+/u",pathinfo($filename,PATHINFO_FILENAME)));

现在如果您只想要文件名的最后一个词,

$str=$words[count($words)-1];

或者如果您想要除第一个以外的所有单词,

unset($words[0]);
$str=implode(" ",$words);

使用explode()

echo explode('.',explode('- ',$filename)[1])[0];

输出:-https://eval.in/979069

解释:-

首先,使用 -(连字符和 space)展开并使用 [1] 获取最后一个值(因为您在展开后获取数组,因此您可以使用索引获取特定的价值,它会给你像 Test.csv,Prototype.csv,Super.csv..等等)的价值。

再次用 . 展开并使用第一个值 [0] 作为最终结果。(因为你在展开后得到数组所以你可以使用索引来获得特定的值,它会给你像 Test,Prototype,Super..等等)的价值。

检查此拆分代码以便更好地理解:- https://eval.in/979077

我使用了substr()函数。

它更容易使用,但它需要文件名的一致性,因此很容易分割文件名。