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

问题描述 投票:2回答:3

如何使用PHP搜索文本?

就像是:

$form = $_GET['form'];

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

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

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

SELECT * FROM people WHERE type = $form ;
php sql-like
3个回答
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开头还是以它结尾?


2
投票

你可以使用strpos

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

2
投票
$form = $_GET['form'];

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

if(stristr($form,"user")){
  $form = 2;
}
© www.soinside.com 2019 - 2024. All rights reserved.