Php 文件名提取

Php 文件名提取,php,extract,filenames,Php,Extract,Filenames,假设我有一个字符串,比如: 拿不住我们--Fingerstyle吉他0.mp3 如何使用PHP动态摆脱\u 0.mp3?对于当前示例,这些值不是硬编码的。如果我使用爆炸 $old = "your file name here"; $new = substr($old, 0, strrpos($old, "_")); substr方法将只获取所需字符串的一部分 strrpos方法查找下划线的最后一个索引,并将该数字传递到substr方法中,以便它知道要剪切多远。这种方法非常理想,因为脚本不会硬编

假设我有一个字符串,比如:

拿不住我们--Fingerstyle吉他0.mp3

如何使用PHP动态摆脱
\u 0.mp3
?对于当前示例,这些值不是硬编码的。如果我使用
爆炸

$old = "your file name here";
$new = substr($old, 0, strrpos($old, "_"));
substr
方法将只获取所需字符串的一部分

strrpos
方法查找下划线的最后一个索引,并将该数字传递到
substr
方法中,以便它知道要剪切多远。这种方法非常理想,因为脚本不会硬编码特定的值,而是会根据您的建议为每个文件动态更改

只是一点警告:如果文件名不包含下划线,该方法将不知道剪切到哪里,并将导致执行错误。一个好的做法是检查
if(strrpos($old,“”)!==false)

substr
方法将只获取所需字符串的一部分

strrpos
方法查找下划线的最后一个索引,并将该数字传递到
substr
方法中,以便它知道要剪切多远。这种方法非常理想,因为脚本不会硬编码特定的值,而是会根据您的建议为每个文件动态更改


只是一点警告:如果文件名不包含下划线,该方法将不知道剪切到哪里,并将导致执行错误。一个好的做法是检查
如果(strrpos($old,“”)!==false)

我喜欢Confiqure的答案。作为补充,如果您发现需要更多功能,还可以使用正则表达式

$old = "Cant_Hold_Us_-_Fingerstyle_Guitar_0.mp3";
$new = preg_replace('/_\d+\.mp3$/', '', $old);

我喜欢Confiqure的回答。作为补充,如果您发现需要更多功能,还可以使用正则表达式

$old = "Cant_Hold_Us_-_Fingerstyle_Guitar_0.mp3";
$new = preg_replace('/_\d+\.mp3$/', '', $old);

Regex是你的朋友。查看
preg\u match
和/或
preg\u replace

$title=preg\u replace(“/[0-9]+\.mp3$/i”,”,$x)


也适用于Bla_21.mp3….

Regex是你的朋友。查看
preg\u match
和/或
preg\u replace

$title=preg\u replace(“/[0-9]+\.mp3$/i”,”,$x)


也适用于Bla_21.mp3….

@trincot你知道他们的意思。你可以毫无讽刺地指出输入错误。你需要指定潜在文件名的范围以及你想要更改的内容to@trincot你知道我做了什么吗meant@trincot你知道他们的意思。你可以毫无讽刺地指出输入错误。你需要指定潜在文件名的范围以及你想要更改的内容to@trincot你知道我的意思,一点错误处理/解释可能会有所帮助。如果字符串中没有“\u1”,会发生什么?字符串中始终会有“\u1”。这将指定文件的版本,然后这将适用于您,而无需使用if语句:)稍微进行一点错误处理/解释可能会有所帮助。如果字符串中没有“\u1”,会发生什么?字符串中始终会有“\u1”。这将指定文件的版本,然后这将适用于您,而无需使用if语句:)