如何从 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);
echo explode('.',explode('- ',$filename)[1])[0];
解释:-
首先,使用 -
(连字符和 space)展开并使用 [1]
获取最后一个值(因为您在展开后获取数组,因此您可以使用索引获取特定的价值,它会给你像 Test.csv
,Prototype.csv
,Super.csv
..等等)的价值。
再次用 .
展开并使用第一个值 [0]
作为最终结果。(因为你在展开后得到数组所以你可以使用索引来获得特定的值,它会给你像 Test
,Prototype
,Super
..等等)的价值。
检查此拆分代码以便更好地理解:- https://eval.in/979077
我使用了substr()
函数。
它更容易使用,但它需要文件名的一致性,因此很容易分割文件名。
是否可以在以下文件名中获取单词 "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);
echo explode('.',explode('- ',$filename)[1])[0];
解释:-
首先,使用 -
(连字符和 space)展开并使用 [1]
获取最后一个值(因为您在展开后获取数组,因此您可以使用索引获取特定的价值,它会给你像 Test.csv
,Prototype.csv
,Super.csv
..等等)的价值。
再次用 .
展开并使用第一个值 [0]
作为最终结果。(因为你在展开后得到数组所以你可以使用索引来获得特定的值,它会给你像 Test
,Prototype
,Super
..等等)的价值。
检查此拆分代码以便更好地理解:- https://eval.in/979077
我使用了substr()
函数。
它更容易使用,但它需要文件名的一致性,因此很容易分割文件名。