如何使用php搜索文本?
类似的东西:
$form = $_GET['form'];
if($form like %admin%){
$form = 1;
}
if($form like %user%){
$form = 2;
}
然后我可以像这样使用这个查询:
SELECT * FROM people WHERE type = $form ;
答案 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
开头还是以此结尾?