如何从PHP中的文件名中获取某个单词?

时间:2018-03-27 06:42:58

标签: php filenames

是否有可能得到“#34;测试","原型"和"超级"在以下文件名中:

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

3 个答案:

答案 0 :(得分:1)

使用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);

答案 1 :(得分:1)

我使用了substr()函数。

它更容易使用,但它需要文件名的一致性,因此可以轻松切片文件名。

答案 2 :(得分:0)

使用explode()

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

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

<强> 说明: -

首先,使用-(连字符和空格)进行爆炸并使用[1]获取最后一个值(因为您在爆炸后获得数组,因此您可以使用索引获取特定值,它将给出您重视Test.csvPrototype.csvSuper.csv ....等等。)

再次使用.进行爆炸,并使用[0]作为最终结果使用第一个值。(因为爆炸后你得到数组,所以你可以使用索引获取特定值,它会给你价值如TestPrototypeSuper ....等等。

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