Php if语句变量以
有没有办法询问变量是否以…开头 我的问题是在一个数据库中,我有图像文件和音频文件,我想要一个if语句,它说if$file以“audio/…”开头。你可以用它来获取字符串的一部分,然后你可以检查它是否等于Php if语句变量以,php,Php,有没有办法询问变量是否以…开头 我的问题是在一个数据库中,我有图像文件和音频文件,我想要一个if语句,它说if$file以“audio/…”开头。你可以用它来获取字符串的一部分,然后你可以检查它是否等于'audio/' if (substr($file, 0, 6)=='audio/') { } 您可以使用获取字符串的一部分,然后检查它是否等于'audio/' if (substr($file, 0, 6)=='audio/') { } 没有这样的内置函数,但可以使用字符串比较来实现等效行为
'audio/'
if (substr($file, 0, 6)=='audio/') {
}
您可以使用获取字符串的一部分,然后检查它是否等于'audio/'
if (substr($file, 0, 6)=='audio/') {
}
没有这样的内置函数,但可以使用字符串比较来实现等效行为
if (strncmp('audio/', $file, 6) === 0) {
// do something
}
或者更常见但性能较差的解决方案
if (substr($file, 0, 6) === 'audio/') {
// do something
}
但是,您应该能够直接从数据库中选择相应的行
WHERE column LIKE 'audio/%'
没有这样的内置函数,但可以使用字符串比较来实现等效行为
if (strncmp('audio/', $file, 6) === 0) {
// do something
}
或者更常见但性能较差的解决方案
if (substr($file, 0, 6) === 'audio/') {
// do something
}
但是,您应该能够直接从数据库中选择相应的行
WHERE column LIKE 'audio/%'
或
或
为什么不用substr呢
if (substr($file,0,5) == "audio")
etc为什么不使用substr-like
if (substr($file,0,5) == "audio")
如果在字符串中未找到
$needle
,etcstrpos()
将返回false
。您必须使用==
,因为(false==0)===true
strpos()
如果在字符串中找不到$needle
,则返回false
。您必须使用==
,因为(false==0)===true
+1对于strncmp
解决方案,它看起来更干净。我不会说它的性能要高很多,我们谈论的是6个字符:)。@bazmegakapa:它的性能更多的是解释器处理它的方式,而不是一个人打字的速度;)有人说,它比substr()
-解决方案快20%。我没有亲自测试,当然我们谈论的是非常小的持续时间。然而,我认为至少知道这一点是好的:)我也不是在谈论打字速度:)。我刚才说,当您必须从一个短字符串中获取6个字符时,这并不重要。+1对于strncmp
解决方案来说,似乎更干净。我不会说它的性能要高很多,我们谈论的是6个字符:)。@bazmegakapa:它的性能更多的是解释器处理它的方式,而不是一个人打字的速度;)有人说,它比substr()
-解决方案快20%。我没有亲自测试,当然我们谈论的是非常小的持续时间。然而,我认为至少知道这一点是好的:)我也不是在谈论打字速度:)。我刚才说,当你必须从一个短字符串中获取6个字符时,这其实并不重要。他正在尝试获取audio
目录中的文件。如果文件名以“audio”(例如audio1.wav)开头,并且文件名以“audio”(例如audiofos/x.jpg)开头的dirs中的文件,那么这也将获得没有dir的简单文件。他正在尝试获取audio
目录中的文件。如果文件名以“audio”(例如audio1.wav)开头,并且文件名以“audio”(例如audiofos/x.jpg)开头的dirs中的文件,则也会得到没有dir的简单文件。