• php查找文件内容


    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <?php
    /**
    * 文件: search.php
    * 功能: 搜索指定目录下的HTML文件
    */
    /* 基本函数 */
    //获取目录下文件函数
    function getFile($dir)
    {
    $dp = opendir($dir);
    $fileArr = array();
    while (!false == $curFile = readdir($dp)) {
    if ($curFile!="." && $curFile!=".." && $curFile!="") {
    if (is_dir($curFile)) {
    $fileArr = getFile($dir."/".$curFile);
    } else {
    $fileArr[] = $dir."/".$curFile;
    }
    }
    }
    return $fileArr;
    }
    //获取文件内容
    function getFileContent($file)
    {
    if (!$fp = fopen($file, "r")) {
    die("Cannot open file $file");
    }
    while ($text = fread($fp, 4096)) {
    $fileContent .= $text;
    }
    return $fileContent;
    }
    //搜索指定文件
    function searchText($file, $keyword)
    {
    $text = getFileContent($file);
    if (preg_match("/$keyword/i", $text)) {
    return true;
    }
    return false;
    }
    //搜索出文章的标题
    function getFileTitle($file, $default="None subject")
    {
    $fileContent = getFileContent($file);
    $sResult = preg_match("/<title>.*</title>/i", $fileContent, $matchResult);
    $title = preg_replace(array("/(<title>)/i","/(</title>)/i"), "", $matchResult[0]);
    if (empty($title)) {
    return $default;
    } else {
    return $title;
    }
    }
    //获取文件描述信息
    function getFileDescribe($file,$length=200, $default="None describe")
    {
    $metas = get_meta_tags($file);
    if ($meta['description'] != "") {
    return $metas['description'];
    }
    $fileContent = getFileContent($file);
    preg_match("/(<body.*</body>)/is", $fileContent, $matchResult);
    $pattern = array("/(<[^x80-xff] >)/i","/(<input.*>) /i", "/(<a.*>) /i", "/(<img.*>) /i", "/([<script.*>]) .*([</script>]) /i","/&amp;/i","/&quot;/i","/&#039;/i", "/s/");
    $description = preg_replace($pattern, "", $matchResult[0]);
    $description = mb_substr($description, 0, $length)." ...";
    return $description;
    }
    //加亮搜索结果中的关键字
    function highLightKeyword($text, $keyword, $color="#C60A00")
    {
    $newword = "<font color=$color>$keyword</font>";
    $text = str_replace($keyword, $newword, $text);
    return $text;
    }
    //获取文件大小(KB)
    function getFileSize($file)
    {
    $filesize = intval(filesize($file)/1024)."K";
    return $filesize;
    }
    //获取文件最后修改的时间
    function getFileTime($file)
    {
    $filetime = date("Y-m-d", filemtime($file));
    return $filetime;
    }
    //搜索目录下所有文件
    function searchFile($dir, $keyword)
    {
    $sFile = getFile($dir);
    if (count($sFile) <= 0) {
    return false;
    }
    $sResult = array();
    foreach ($sFile as $file) {
    if (searchText($file, $keyword)) {
    $sResult[] = $file;
    }
    }
    if (count($sResult) <= 0) {
    return false;
    } else {
    return $sResult;
    }
    }
    /* 测试代码 */
    //指定要搜索的目录
    $dir = "./includes";
    //要搜索的关键字
    $keyword = "Nike Air Max Canada";//searchText($dir, $keyword);
    $fileArr = searchFile($dir, $keyword);
    $searchSum = count($fileArr);
    echo "搜索关键字: <b>$keyword</b> &nbsp; 搜索目录: <b>$dir</b> &nbsp; 搜索结果: <b>$searchSum</b><br><hr size=1><br>";
    if ($searchSum <= 0) {
    echo "没有搜索到任何结果";
    } //else {
    //foreach ($fileArr as $file) {
    //echo "<a href='$file' target='_blank'>". highLightKeyword(getFileTitle($file), $keyword) .
    // "</a> - ".getFileSize($file)."&nbsp;". getFileTime($file) .
    // "<br> <font size=2>".highLightKeyword(getFileDescribe($file), $keyword) .
    // "</font><br><br>";
    //}
    //}
    ?>

  • 相关阅读:
    将地址转换为链接的正则表达式(regex url href)
    [收藏]中国惠普前总裁孙振耀谈人生
    沪江技术团队寻觅新成员,下一位会是你吗?
    来点圣诞气氛
    让VisualSVN Server支持匿名访问
    11月25日博客园南京园友聚会
    [上海俱乐部活动]博文视点与博客园系列图书作者见面会暨.NET技术交流会
    比尔·盖茨在微软的最后一天
    真让人兴奋
    博客园新服务器已下订单
  • 原文地址:https://www.cnblogs.com/alex-13/p/3682621.html
Copyright © 2020-2023  润新知