【问题标题】:Find file by (similar) name PHP通过(相似)名称查找文件 PHP
【发布时间】:2015-11-10 17:06:06
【问题描述】:

我有一个包含歌曲的文件夹,文件名是:“Singer - Song”

我有一个文件名为:“Example - A test song”

我想在搜索时找到那个文件:

“示例 - 测试歌曲”

“示例 - 测试歌曲”

“示例 - 测试歌曲”

即使搜索名称有一些错误,我也想找到那个文件。 我该怎么做?

【问题讨论】:

  • 你尝试的代码在哪里?
  • 我尝试搜索 glob...但我认为它不起作用,我尝试了:glob("*[Exmple]*-*[Test song]*.mp3"); 但它会找到名称为“some words - some words”的每个文件跨度>

标签: php file search glob


【解决方案1】:

我使用 PHP 的 similar_text 函数编写了一个简短的脚本。它适用于上面写的所有字符串。

<?php
$dir = $_SERVER['DOCUMENT_ROOT'];
$needle = "eximple - A teste song";

if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            similar_text($file, $needle, $percent);
            if($percent > 80)
                echo $file  . " similarity: " . $percent . "<br />";
        }
        closedir($dh);
    }
}

解释:该函数计算两个字符串$file$needle 的匹配程度(百分比)。如果它们匹配超过 80%,则回显文件名。随意调整$needle$dir 以满足您的需求。

【讨论】:

  • 我试过了,效果很好!这正是我所需要的
【解决方案2】:

有很多方法可以做到这一点...假设您希望在输入时弹出歌曲名称,我会说您需要实时搜索功能。

我在创建我的时使用了 w3,它工作得非常好。

http://www.w3schools.com/php/php_ajax_livesearch.asp

【讨论】:

  • 我不需要实时搜索,但我会看看是否可以使用实时搜索中的某些内容并将其用于我的问题。谢谢
猜你喜欢
  • 2011-01-11
  • 1970-01-01
  • 2012-03-14
  • 2015-02-13
  • 2011-02-08
  • 2014-04-08
  • 2021-08-31
  • 2011-03-09
  • 1970-01-01
相关资源
最近更新 更多