Laravel 如何在public/storage/中迭代和搜索文件内容?
我在Laravel 如何在public/storage/中迭代和搜索文件内容?,laravel,Laravel,我在public/storage/中有一组文本文件,我需要搜索它们的内容,我尝试将其定制为在Laravel中工作,但没有成功 public function search($query) { $dir = new \DirectoryIterator(public_path('public')); foreach ($dir as $file) { return $file; $content = file_get_contents(public
public/storage/
中有一组文本文件,我需要搜索它们的内容,我尝试将其定制为在Laravel中工作,但没有成功
public function search($query)
{
$dir = new \DirectoryIterator(public_path('public'));
foreach ($dir as $file) {
return $file;
$content = file_get_contents(public_path($file));
if (strpos($content, $query) !== false) {
return 'yes';
} else {
return 'no';
}
}
}
我相信代码的问题在于我不知道Laravel是如何访问路径的
Laravel中的文件结构:
project
│
└───public
│
└───storage
│
│ file1.txt
│ file2.txt
│ ...
└───
这应该按照您希望检查每个文件内容的方式进行:
$dir = new \DirectoryIterator(public_path('storage'));
foreach ($dir as $file) {
if ($file->isFile()) {
$content = file_get_contents($file->getRealPath());
if (str_contains($content, $query)) {
return 'yes';
}
}
}
return 'no';
这应该按照您希望检查每个文件内容的方式进行:
$dir = new \DirectoryIterator(public_path('storage'));
foreach ($dir as $file) {
if ($file->isFile()) {
$content = file_get_contents($file->getRealPath());
if (str_contains($content, $query)) {
return 'yes';
}
}
}
return 'no';
如果要获取到
public/storage
的路径,需要调用public\u path(“storage”)
您也可以使用,但这取决于您的文件夹/文件结构
例如:
$files = glob(public_path('/storage') . '/*.txt');
这将返回在public/storage/
中具有.txt
扩展名的所有文件的数组
如果这些文件位于
public/storage
中的文件夹中,则需要递归获取所有这些文件 如果要获取到公共/存储的路径,需要调用公共路径(“存储”)
您也可以使用,但这取决于您的文件夹/文件结构
例如:
$files = glob(public_path('/storage') . '/*.txt');
这将返回在public/storage/
中具有.txt
扩展名的所有文件的数组
如果这些文件位于public/storage
中的文件夹中,则需要递归获取所有这些文件 您的存储目录中是否有其他文件?尝试读取每个文件似乎不是一个好主意。你能包括你的文件结构吗?@Devon是的,还有其他文件,但我的计划是将文本文件放在一个专用的文件夹中directory@IvankaTodorova我添加了Laravelpublic/storage
的文件结构,您的存储目录中还有其他文件吗?尝试读取每个文件似乎不是一个好主意。你能包括你的文件结构吗?@Devon是的,还有其他文件,但我的计划是将文本文件放在一个专用的文件夹中directory@IvankaTodorova我添加了Laravelpublic/storage
的文件结构。返回字符串是一种不好的做法。@IvankaTodorova,这只是为了测试而添加的,OP可能需要完整的文件内容或true/false。返回字符串是一种不好的做法。@Ivankatorova,这只是为了测试而添加的,OP可能需要完整的文件内容或true/false。