Php 使用逗号分隔的字符串在if-else中创建或语句?
目前,我有一段代码可以很好地工作Php 使用逗号分隔的字符串在if-else中创建或语句?,php,Php,目前,我有一段代码可以很好地工作 如果($ext=='jpg'或$ext=='gif'或$ext=='png'或$ext=='jpeg'或$ext=='eps'或$ext=='pdf'){ //找到扩展并执行其余部分。 }否则{ //找不到扩展显示警告或其他内容。 } 但这就是我所说的硬编码,我希望最终用户能够在该代码所属组件的设置中更改它。 在这些设置中,我可以很容易地创建一个输入,用户需要在一个逗号分隔的列表中填写他们想要的所有扩展名 在这种情况下:jpg、gif、png、jpeg、eps
如果($ext=='jpg'或$ext=='gif'或$ext=='png'或$ext=='jpeg'或$ext=='eps'或$ext=='pdf'){
//找到扩展并执行其余部分。
}否则{
//找不到扩展显示警告或其他内容。
}
但这就是我所说的硬编码,我希望最终用户能够在该代码所属组件的设置中更改它。
在这些设置中,我可以很容易地创建一个输入,用户需要在一个逗号分隔的列表中填写他们想要的所有扩展名
在这种情况下:jpg、gif、png、jpeg、eps、pdf
然后检索这些设置,如:$ext=$setting\u extensions
,其中显示字符串jpg、gif、png、jpeg、eps、pdf
但是如何在if语句中使用它呢?
我想我可以使用explode和foreach:
$tests=explode(“,”,$ext);
foreach($tests作为$test){
}
但如何将其放入带有or的if语句中?在您的if
语句的条件中使用PHP的in_array()
函数:
$tests = explode(',', $extString);
if (in_array($ext, $tests))) {
// success
}
但我还要加上一些规范化,所以大写、间距等不会成为一个因素:
$tests = explode(',', $extString);
$tests = array_map(function($test) {
return strtolower(trim($test))
}, $tests);
if (in_array(strtolower($ext), $tests)) {
// success
}
在if
语句的条件中使用PHP的in_array()
函数:
$tests = explode(',', $extString);
if (in_array($ext, $tests))) {
// success
}
但我还要加上一些规范化,所以大写、间距等不会成为一个因素:
$tests = explode(',', $extString);
$tests = array_map(function($test) {
return strtolower(trim($test))
}, $tests);
if (in_array(strtolower($ext), $tests)) {
// success
}
您可以使用in_数组来实现这一点
$tests = explode(",", $setting_extensions);
if (in_array($ext, $tests)) {
// Extension found execute the rest.
} else {
// Extension not found show a warning or something.
}
您可以使用in_数组来实现这一点
$tests = explode(",", $setting_extensions);
if (in_array($ext, $tests)) {
// Extension found execute the rest.
} else {
// Extension not found show a warning or something.
}
在数组中分解
和。这是否回答了您的问题@El_Vanja在收到投稿人的答案并再次阅读您的建议后,我现在可以看到它如何回答我的问题(但必须先测试),但在此之前,我看不出它是如何适用的。但是感谢您提出这个问题,因为我在发布之前没有搜索这些关键字。爆炸
和在数组中
。这是否回答了您的问题@El_Vanja在收到投稿人的答案并再次阅读您的建议后,我现在可以看到它如何回答我的问题(但必须先测试),但在此之前,我看不出它是如何适用的。但是谢谢你提出这个问题,因为我在发布之前没有搜索这些关键词。谢谢你帮我解决这个问题!我将尝试这个以及其他答案,我将接受a.s.a.p.的答案。谢谢你的帮助!我将尝试这个以及其他答案,我将接受a.s.a.p.的答案。谢谢你的帮助!我将尝试这个以及其他答案,我将接受a.s.a.p.的答案。谢谢你的帮助!我将尝试这个以及其他答案,我将接受a.s.a.p.的答案。