如何使用php搜索文本if($ text like%admin%)

时间:2017-03-16 03:39:30

标签: php sql-like

如何使用php搜索文本?

类似的东西:

$form = $_GET['form'];

if($form like %admin%){
  $form = 1;
}

if($form like %user%){
  $form = 2;
}

然后我可以像这样使用这个查询:

SELECT * FROM people WHERE type = $form ;

3 个答案:

答案 0 :(得分:2)

您可以使用strpos

 if (strpos($form,'admin')!== false) {
 $form = 1;
 }

答案 1 :(得分:2)

$form = $_GET['form'];

if(stristr($form,"admin")){
  $form = 1;
}

if(stristr($form,"user")){
  $form = 2;
}

答案 2 :(得分:1)

在处理用户输入时,您无法进行验证。

如果$from,Sahil的回答会将2设置为$_GET['form']=='adminuser'。 出于性能原因,它还使用stristr()不建议(即使是php手册)。

除非您有正确的理由来检查子字符串,否则您应该检查整个字符串。此外,您应该只使用一个条件块而不是两个单独的if块 - 这将避免覆盖$form并执行额外的不必要的函数调用。

if(isset($_GET['form']) && $_GET['form']=='admin'){
    $form=1;
}else{
    $form=2;  // assuming this should be the default form value
}

...或$form=isset($_GET['form']) && $_GET['form']=='admin'?1:2;

如果您要继续检查子字符串:

if(isset($_GET['form']) && strpos($_GET['form'],'admin')!==false){
    $form=1;
}else{
    $form=2;  // assuming this should be the default form value
}

...或$form=isset($_GET['form']) && strpos($_GET['form'],'admin')!==false?1:2;

根据$_GET['form']的可能值,如果您检查admin的位置,您的验证会有所改进 - 字符串是以admin开头还是以此结尾?