<?php
$search="'/class/i'";
$dir=opendir("./");
$filearray=array();
while(($file=readdir($dir))!==false)
{
$filearray[]=$file;
}
foreach($filearray as $value)
{
if(preg_match_all($search,$value,$filefinal))
{
echo "符合搜索的文件名:".$value."<br/>";}}
?>出错部分已经用红色标注,改成'/class/i'之后又能正常...难道preg_match_all这个函数的参数不可以用变量吗????

解决方案 »

  1.   

    额~~~红色标注部分是preg_match_all里面的$search
      

  2.   

    刚发帖就解决了,改成双引号就OK了
    <?php
    $search2="class";
    $dir=opendir("./");
    $filearray=array();
    while(($file=readdir($dir))!==false)
    {
    $filearray[]=$file;
    }
    foreach($filearray as $value)
    {
    if(preg_match_all("/$search2/i",$value,$filefinal))
    {
    echo "符合搜索的文件名:".$value."<br/>";}}
    ?>
      

  3.   

    $search="/class/i";  //这样就可以了
      

  4.   

    glob("./*{$search2}*"); 也可以解决你的问题