2015-08-17 68 views
2

我有歌曲文件夾和文件的名稱是:「歌手 - 歌曲」查找文件

我有這個名稱的文件:「示例 - 測試的歌」

我想找到那個文件,當我搜索:

「Eample - 測試的歌」

「示例 - 測試的歌」

「eximple - 一個睾丸中的歌曲」

即使搜索名稱有一些錯誤,我想找到該文件。 我該怎麼辦?

+2

你的嘗試代碼在哪裏? – aldrin27

+0

我試圖搜索glob ...但我不認爲它可行,我試過: glob(「* [Exmple] * - * [Test song] *。mp3」);' 但它發現每個文件的名稱是「一些詞 - 一些詞」 –

回答

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以滿足您的需求。

+0

我試過了,它效果很好!那正是我所需要的 –

0

有很多方法可以做到這一點...假設你想讓歌曲名稱在打字時彈出,我會說你需要一個實時搜索功能。

我在創建我的時候使用了w3,它的工作非常好。

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

+0

我不需要實時搜索,但我會看看我是否可以使用實時搜索中的某些內容並將其用於我的問題。謝謝 –