如何使用PHP查找与模式匹配的路径名

时间:2018-01-30 09:05:43

标签: php

我正在寻找目录中的文件。我的目录路径名模式如下所示: TEST_1.jpg TEST_2.jpg TEST_3.jpg TEST_4.jpg twPL_1.jpg twPL_2.jpg twPL_3.jpg twPL_4.jpg 所以,如果我有一个带有localhost的URL参数:8000 / cover?customer = twPL。我正在获得前两个jpg,这是有效的。问题是URL参数区分大小写。如果我尝试使用小写字符(...?customer = twpl)编写URL Paramater,我会收到通知:   注意:未定义的偏移量:0      注意:未定义的偏移量:1 < PHP         if(isset($ _ GET [“customer”])){             $ customer = $ _GET [“customer”];             $ dirs = glob(“cover /".$ customer。”*。jpg“);             $ allData = glob(“cover / * .jpg”);             $ killExt = array(“cover /”,“_ 1”,“_ 2”,“_ 3”,“_ 4”,“。jpg”);             $ new_array = str_replace($ killExt,“”,$ allData);             $ arrayLowerCase = array_map('strtolower',$ new_array);             // die(var_dump($ dirs));             if(array_search(strtolower($ customer),$ arrayLowerCase)!== false){                 for($ i = 0; $ i< 2; $ i ++){                     回声                     '< div class =“cover”data-page-number =“0”>',                         '< img class =“front-modal”src =“'。strtolower($ dirs [$ i])。'”/>',                     '< / DIV>';                 }             }         }     ?> 我认为这会导致问题$ dirs = glob(“cover /".$ customer。”*。jpg“); 我怎样才能以不区分大小写的方式搜索这个glob函数...

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是从一个规则开始而不是你定义:名称在较低或大写。因此,只是小写所有$ _GET参数比执行您想要的操作更容易。 不管。

对于您的问题,您可以通过正则表达式搜索匹配您的两个文件名称的所有模式: 测试:测试,TEsT等 twPL:twpl,TWPL等

$safe_cust = "";
if(strtolower($matches_twpl[0]) == "twpl"){
    $safe_cust = "twPL";
} else if ( strtolower($matches_test[0]) == "test") {
    $safe_cust = "TEST"; 
}else {
    //error
}

然后

animation-delay