如何使用PHP搜索文本?
就像是:
$form = $_GET['form'];
if($form like %admin%){
$form = 1;
}
if($form like %user%){
$form = 2;
}
然后我可以像这样使用这个查询:
SELECT * FROM people WHERE type = $form ;
处理用户输入时,您不能懒惰验证。
如果$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
开头还是以它结尾?
你可以使用strpos
if (strpos($form,'admin')!== false) {
$form = 1;
}
$form = $_GET['form'];
if(stristr($form,"admin")){
$form = 1;
}
if(stristr($form,"user")){
$form = 2;
}