按(相似)名称查找文件 PHP
Find file by (similar) name PHP
我有一个存放歌曲的文件夹,文件名是:"Singer - Song"
我有一个同名的文件:"Example - A test song"
我想在搜索时找到该文件:
"Eample - A test song"
"Example - test song"
"eximple - A teste song"
即使搜索名称有一些错误,我也想找到那个文件。
我该怎么做?
有很多方法可以做到这一点...假设您希望在键入时弹出歌曲名称,我会说您需要一个实时搜索功能。
我在创建我的程序时使用了 w3,它运行得非常好。
我使用 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
以满足您的需要。
我有一个存放歌曲的文件夹,文件名是:"Singer - Song"
我有一个同名的文件:"Example - A test song"
我想在搜索时找到该文件:
"Eample - A test song"
"Example - test song"
"eximple - A teste song"
即使搜索名称有一些错误,我也想找到那个文件。 我该怎么做?
有很多方法可以做到这一点...假设您希望在键入时弹出歌曲名称,我会说您需要一个实时搜索功能。
我在创建我的程序时使用了 w3,它运行得非常好。
我使用 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
以满足您的需要。