douyou7102 2018-02-17 18:01
浏览 42

PHP警告:strpos():search.php中的空针

I have a php search file that searches a directory for files with the submitted names and displays the results. I want to use the html form in the same file as the php code i.e., in search.php only like this:

<form action="search.php" method="get"><input name="q"
type="text"> <input type="submit"></form>

<?php
$dir = '/www/posts'; 
$exclude = array('.','..','.htaccess'); 
$q = (isset($_GET['q']))? strtolower($_GET['q']) : ''; 
$res = opendir($dir);

while(false!== ($file = readdir($res))) { 
    if(strpos(strtolower($file),$q)!== false &&!in_array($file,$exclude)) 
    { 
        $last_dot_index = strrpos($file, ".");
        $withoutExt = substr($file, 0, $last_dot_index);
        echo "<a href='$withoutExt'>$withoutExt</a>"; 
        echo "<br>"; 
    }
}  
closedir($res); 
?>

But the above code gives the error : Warning: strpos(): Empty needle in search.php on line 10

I tried using the !empty argument like this:

<?php
$dir = '/www/posts'; 
$exclude = array('.','..','.htaccess'); 
$q = (isset($_GET['q']))? strtolower($_GET['q']) : ''; 
$res = opendir($dir);

if (!empty($res)) {
    while(false!== ($file = readdir($res))) { 
         if(strpos(strtolower($file),$q)!== false &&!in_array($file,$exclude)) { 
             $last_dot_index = strrpos($file, ".");
             $withoutExt = substr($file, 0, $last_dot_index);
             echo "<a href='$withoutExt'>$withoutExt</a>"; 
             echo "<br>"; 
         }
         else {
             echo "";
         }
     }
}  
closedir($res); 
?>

But it still reflects the error.

Please help me get rid of this error.

  • 写回答

2条回答 默认 最新

  • dsfsdfsdfsdfsdf45454 2018-02-17 18:07
    关注

    You need to check $q for emptiness. If it's empty - what's the point to search. There's even no need to run opendir if $q is empty.

    if (!empty($q)) {
        $res = opendir($dir);
        while(false!== ($file = readdir($res))) { 
            // more codes here
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog