检查字符串是否包含另一个字符串的最佳方法

时间:2014-02-23 20:09:56

标签: php

$name是字符串,包含文件名,如下所示,

  

AAA_ss_01.pdf,AAA_ss_02.pdf,AAA_sd_01.pdf,BBB_ss_02.pdf,   BBB_ss_4.pdf,BBB_sd_01.pdf,cc_saa_01.pdf

我想添加输入名称值以自动对项目进行分类。

<input name="AAA" .../> or <input name="BBB" .../> ........

PHP

if (strpos($names, 'AAA') !== false) {
    echo 'AAA';
}elseif (strpos($names, 'BBB') !== false){
    echo 'BBB';
}elseif (strpos($names, 'ccc') !== false){
    echo 'ccc';
}else{
    echo '';
}

我做了这样的功能

function contains($names, $string){
    if (strpos($names, $string) !== false) {
        echo $string;
    }
}

但我不确定strpos是否是一种我可以使用的正确方法,或者是否有更好的方法。

由于

2 个答案:

答案 0 :(得分:3)

strpos是检查字符串A是否包含字符串B的正确方法。它非常快。您可能希望使用stripos进行不区分大小写的匹配。

但是,如果$names是一个数组,则必须对其进行迭代并检查每个值。

foreach ($names as $name) {
  if (strpos($name, 'AAA') !== false) {
    echo 'AAA';
  } elseif (strpos($name, 'BBB') !== false) {
    echo 'BBB';
  } elseif (strpos($name, 'ccc') !== false) {
    echo 'ccc';
  } else{
    echo '';
  }
}

答案 1 :(得分:1)

如果您只想从前3个字母中输入信息,可以使用以下内容快速完成输入:

foreach($names as $name):
    echo '<input name="', substr($name, 0, 3) ,'" type="text"/>';
endforeach;