我有一个php文件,它将搜索我服务器上的所有文件,查找包含字符串的任何文件。如果我在strpos()中硬编码搜索词,它可以正常工作。但如果我尝试使用$ string它将无法正常工作
works:
$file = file_get_contents($dir);
if(strpos($file, 'find me'))
does not work:
$findme='find me';
$file = file_get_contents($dir);
if(strpos($file, $findme))
任何想法?
编辑:if(strpos($ file,'find me')!== false)无效。
解决:发现我必须在抽动 if(strpos($ file,'$ findme'))答案 0 :(得分:3)
你应该测试if(strpos($file, 'find me') !== false)
,因为如果文件以“找我”开头,strpos($file, 'find me')
可能为0
答案 1 :(得分:1)
好吧,第一件事就是你错误地使用了strpos
;您需要执行if(strpos($file, 'find me') !== false)
和if(strpos($file, $findme) !== false)
。
答案 2 :(得分:0)
warning in the docs提到你应该寻找一个明确的false
,而不仅仅是将函数放在一个条件中。由于strpos
可能会返回0
或""
(两者都评估为false),因此条件本身可能会失败。
请尝试以下方法:
if(strpos($file,$findme) !== false)
此外,如果你说你已经尝试过并且它仍然失败,请尝试运行var_dump($file)
以确保干草堆确实包含可以搜索的信息。