如何使用 php 搜索文件夹中的文件?
How to search file in folder by using php?
我有一个文件夹叫allfiles
,这个文件夹里有一些文件,比如
1212-how-to-sddk-thosd.html
3454-go-to-dlkkl-sdf.html
0987-sfda-asf-fdf-12331.html
4789-how-to-fdaaf-65536.html
我使用scandir
列出所有文件,现在我需要通过with关键字来查找文件,例如to-dlkkl
是关键字,我将得到文件3454-go-to-dlkkl-sdf.html
.
Glob 似乎不起作用,opendir 和 readdir 也不好用,有什么想法吗?
使用循环foreach
和strpos
函数:
$files = scandir('allfiles');
foreach ($files as $file) {
if (strpos('to-dlkkl', $file) !== false) {
//file found
}
}
您可以使用 strstr 获取实际文件
$allfiles = scandir('./');
foreach ($allfiles as $file) {
if (strstr($file, 'to-dlkkl')) {
echo "file found"; //do what you want
}
}
如果你想搜索目录下的特定文件那么你可以使用preg_match()
.
<?php
if ($handle = opendir('/var/www/html/j')) { // here add your directory
$keyword = "index.php"; // your keyword
while (false !== ($entry = readdir($handle))) {
// (preg_match('/\.txt$/', $entry)) {
if (preg_match('/'.$keyword.'/i', $entry)) {
echo "$entry\n";
}
}
closedir($handle);
}
?>
我想知道为什么 glob() 函数对它不起作用?
我猜下面的代码应该可以工作,
$existing_dir = getcwd();
// path to dir
chdir( '/var/www/allfiles/' );
foreach( glob( '*to-dlkkl*.html' ) as $html_file ) {
echo $html_file . '<br />';
}
chdir( $existing_dir );
我有一个文件夹叫allfiles
,这个文件夹里有一些文件,比如
1212-how-to-sddk-thosd.html
3454-go-to-dlkkl-sdf.html
0987-sfda-asf-fdf-12331.html
4789-how-to-fdaaf-65536.html
我使用scandir
列出所有文件,现在我需要通过with关键字来查找文件,例如to-dlkkl
是关键字,我将得到文件3454-go-to-dlkkl-sdf.html
.
Glob 似乎不起作用,opendir 和 readdir 也不好用,有什么想法吗?
使用循环foreach
和strpos
函数:
$files = scandir('allfiles');
foreach ($files as $file) {
if (strpos('to-dlkkl', $file) !== false) {
//file found
}
}
您可以使用 strstr 获取实际文件
$allfiles = scandir('./');
foreach ($allfiles as $file) {
if (strstr($file, 'to-dlkkl')) {
echo "file found"; //do what you want
}
}
如果你想搜索目录下的特定文件那么你可以使用preg_match()
.
<?php
if ($handle = opendir('/var/www/html/j')) { // here add your directory
$keyword = "index.php"; // your keyword
while (false !== ($entry = readdir($handle))) {
// (preg_match('/\.txt$/', $entry)) {
if (preg_match('/'.$keyword.'/i', $entry)) {
echo "$entry\n";
}
}
closedir($handle);
}
?>
我想知道为什么 glob() 函数对它不起作用?
我猜下面的代码应该可以工作,
$existing_dir = getcwd();
// path to dir
chdir( '/var/www/allfiles/' );
foreach( glob( '*to-dlkkl*.html' ) as $html_file ) {
echo $html_file . '<br />';
}
chdir( $existing_dir );