这是一个益智游戏。我有一个包含计算机文件路径的变量。我需要将文件名与路径分开。
实施例: 由此:
$filepath = C:\\User\Me\Myfiles\file.jpg
我需要这个:
$path = C:\\User\Me\Myfiles\
$file = file.jpg
我知道如何使用substr获取$ filepath的子字符串。问题是使用“\”作为“针”来获取文件名的位置。
这会导致错误:
$pos = strrpos("\",$filepath);
这不会导致错误,但不会给我$ pos的值:
$pos = strrpos("\\",$filepath);
与往常一样,任何帮助都要得到我永恒的感激。
答案 0 :(得分:3)
$pos = strrpos("\\",$filepath);
这是尝试在字符串$filepath
中找到"\\"
的位置。除非$filepath
是单个反斜杠,否则不会返回任何位置。
你想要交换两个参数。
$pos = strrpos($filepath, "\\");
此外,basename($filepath)
或pathinfo($filepath, PATHINFO_BASENAME)
可用于获取文件名。
答案 1 :(得分:0)
使用pathinfo($filepath)
的可用方法查看SplFileInfo
或oo方法的输出。
答案 2 :(得分:0)
preg_match('#^(.+)\\\\(.+)$#', $filepath, $matches);
$path = $matches[1];
$file = $matches[2];
这是有效的,因为+
正则表达式量词是贪婪的,所以它将匹配它可以的所有字符。 \
是双重转义的,一次是PHP字符串,一次是正则表达式。