错误 file_get_contents():读取 8192 字节失败,errno=21

2023-11-22

我有一个简单的脚本,它在每个子文件夹的每个文件中搜索给定的字符串。它工作得很好,直到我相信我的 PHP 已更新(我不太确定是否是因为这个)。这是代码:

<?php 
$limit = ini_get('memory_limit');
ini_set('memory_limit', -1);
ini_set('max_execution_time', 300);

function get_directory_content($directory){
    global $search, $results; 

    $files = scandir($directory);

    foreach ($files as $file) {
        if ($file == "." || $file == "..") {
            continue;
        }

        $is_file = false;
        $path = realpath($directory . DIRECTORY_SEPARATOR . $file);

        if (is_dir($path)) {
            get_directory_content($path);
            $is_file = true;
        }
        else{
            $is_file = true;
        }

        if ($is_file) {
            $content = file_get_contents($path);
        }


        if (stripos($content, $search) !== false) {
            $obj = new stdClass();
            $obj->dir = ($directory . DIRECTORY_SEPARATOR . "<b>".$file."</b>");
            $obj->file_name = $file;
            array_push($results, $obj);
        }
    }
}

if (isset($_GET["submit"])) {
    $search = $_GET["search"];
    $results = array();

    get_directory_content(dirname(__FILE__));
}

 ?>

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <h1>Main</h1>
        <form method="GET">
            <p>
                <input name="search" autocomplete="off" placeholder="Enter query here">
            </p>
            <input type="submit" name="submit">
        </form>


        <?php foreach ($results as $result):  ?>
            <h1><?php echo $result->file_name; ?></h1>
            <p><?php echo $result->dir; ?></p>
        <?php endforeach; ?>
</body>
</html>

我收到的错误是: 注意:file_get_contents(): read of 8192 bytes failed with errno=21 Is a directory in /Users/nikolaynikolaev/Server/original_search.php on line 29

有谁知道该问题的潜在解决方案吗?

如果您能帮助我解决问题,我将不胜感激。提前致谢! :)


通知消息清楚地解释了这一点:“是一个目录".

注意:file_get_contents():读取 [...] 字节失败,errno=21是一个目录在 [...]

要修复此错误,只需检查路径

foreach ($paths as $path) {
    if (!is_file($path))
        continue;
    
    // this path points to a file
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误 file_get_contents():读取 8192 字节失败,errno=21 的相关文章

  • Symfony 4.1 组件 - 依赖注入问题

    我正在用 PHP 重构旧应用程序 我正在尝试使用 Symfony 依赖注入组件将服务注入控制器 或其他服务 但我不知道如何实现这一点 因为 symphony 文档比框架组件更适合使用框架 我已经有了自己的内核 包含所有服务和控制器的容器 控
  • PHP 中 while (true){ 是什么意思?

    我看过这段代码 但不知道这意味着什么 while true echo Hello world 我知道什么是 while 循环 但是 while true 是什么意思 会执行多少次 这不是无限循环吗 虽然是无限循环 但您可以使用以下命令退出它
  • PHP strtotime返回Mysql UNIX_TIMESTAMP的不同值

    我在 stackoverflow 上搜索过帖子 发现了一些类似的帖子 但我认为这是一篇不同的帖子 我的 PHP 和 Mysql 服务器的时区全部设置为 UTC 在表中我使用时间戳字段 值为 2010 11 08 02 54 15 我使用这样
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • openssl_crypt 中初始化向量的使用

    我看了一下this https stackoverflow com questions 1391132 two way encryption in php问题 并想为自己做 当我运行这段代码时 直接取自这个答案 https stackove
  • PHP三元运算符错误[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 三元运算符未按预期工作 https stackoverflow com questions 14214427 php ternary operator not working as expec
  • 在 Laravel 5.4 中选择下拉列表的选定值

    我有一个名为 名称 的下拉列表 用户将在其中选择其中一个 提交后 如果出现一些错误 那么我想选择所选的名称 我在 laravel 5 4 中使用它 控制器 info DB table designation gt where status
  • PHP:如何获取
    中的名称值

    有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 中没有看到它 POST 有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 POST 中没有看到它 不 表单的名称属性永远不会设置为作为 POST
  • 递归替换多维数组中特定键每次出现的值

    我有一个数组 其数组深度可能会有所不同 例如 array one gt array array something gt value array something2 gt value2 another gt anothervalue tw
  • 自动解析 PHP,将 PHP 代码与 HTML 分离

    我正在开发一个大型 PHP 代码库 我想将 PHP 代码与 HTML 和 JavaScript 分开 我需要对 PHP 代码进行多次自动搜索和替换 对 HTML 进行不同的搜索和替换 对 JS 进行不同的自动搜索和替换 有没有一个好的解析器
  • 自动安排并执行 PHP 脚本

    我编写了一个 PHP 脚本 它生成一个包含数据库中所有表的 SQL 文件 我想要做的是每天或每 n 天执行这个脚本 我读过有关 cron 作业的内容 但我使用的是 Windows 如何在服务器上自动执行脚本 您需要添加计划任务来调用 URL
  • 如何从 haskell 中的 IOError 获取 errno?

    我在 haskell 平台上 GHC 6 12 1 作为 apt get 安装在 Debian Squeeze 上 鉴于我需要在与最初引发它的线程不同的线程上使用它 如何从 IOError 中获取底层 errno 我需要这个的原因是因为我正
  • 根据相同的 XML 模式 (XSD) 加速一批 XML 文件的 XML 模式验证

    我想加快根据同一个 XML 模式 XSD 验证一批 XML 文件的过程 唯一的限制是我处于 PHP 环境中 我当前的问题是 我想要验证的模式包括 2755 行的相当复杂的 xhtml 模式 http www w3 org 2002 08 x
  • PHP 中的 GOTO 命令?

    我听说 PHP 计划引入 goto 命令的传言 它应该做什么 我尝试搜索了一下 但没有找到任何具有描述性的内容 我明白这不会是 GOTO 10 类似命令 They are not adding a real GOTO but extendi
  • Doctrine 生成实体命名空间问题?

    好吧 我对原则有最后一个问题 生成 实体命令 我运行以下命令 并得到预期的文件 src MyNamespace Bundle MyNamespaceBundle Resources config doctrine metadata orm
  • PHP根据给定索引的匹配值合并数组[重复]

    这个问题在这里已经有答案了 我有两个这样的数组 Array1 Array 0 gt Array ID gt 101 Code gt 1075 Date gt 2012 03 03 17 13 12 433 1 gt Array ID gt
  • 在 php 中回显 JSON 数据

    我正在尝试回显一些 JSON 数据 问题是数据包含变量 但我的代码没有将变量放入字符串中 这是我的代码 status row Status priority row Priority echo status status priority
  • Mysqli 准备好的语句从数组动态构建 INSERT 查询

    我正在尝试用 PHP 而不是 OOP 开发我的函数 以创建 CRUD 目标是对任何表使用相同的函数 但我已经陷入了第一个表中 不知道该怎么做 我现在拥有的 function to avoid injections function vali
  • 是否需要使用fetch_object或fetch_array?

    我最近发现我可以打印数据库中的结果而不使用mysqli fetch object功能 例如 假设我们有一个简单的 sql select 语句 可以使用如下所示的语句来执行 conn mysqli connect localhost root
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确

随机推荐

  • DownloadFile 与 DownloadFileAsync

    我正在使用 WebClient DownloadFile 从 Web 服务器一次下载一个文件 但是 我想知道 线程被阻止 开发人员是否意味着应用程序不会响应 我尝试使用 WebClient DownloadFileAsync 但它不像 Do
  • 获取临时对象的地址

    5 3 1 一元运算符 第 3 节 一元 运算符的结果是指向其操作数的指针 操作数应为左值或合格的 ID 在这种情况下 应该 到底意味着什么 这是否意味着获取临时地址是错误的 我只是想知道 因为 g 只给我一个警告 而 comeau 拒绝编
  • 拉拉维尔。在具有关系的模型中使用scope()

    我有两个相关模型 Category and Post The Post模型有一个published范围 方法scopePublished 当我尝试获取该范围内的所有类别时 categories Category with posts gt
  • PDF 中需要 Arial 字体(BIRT pdf 渲染器,Linux)

    我使用 BIRT IDE 创建了一个 rptdesign 文件 该文件内容采用 Arial 字体 当我在 Windows 中将报告导出为 PDF 时 它工作正常 我使用默认的viewerServlet 来创建报告 但是当我将报告移动到Lin
  • 在 JavaScript 中实现单例的最简单/最干净的方法

    实现最简单 最干净的方法是什么单例模式在 JavaScript 中 我认为最简单的方法是声明一个简单的对象文字 var myInstance method1 function method2 function 如果您希望单例实例上有私有成员
  • 如何在 Python 中将列表分割成连续的非零整数组

    似乎无法在网上找到这方面的线索 并且我自己也无法弄清楚 所以 我将如何对列表进行切片 以便返回连续非零整数切片的列表 IE data 3 7 4 0 1 3 7 我想生产 slices 3 7 4 1 3 7 我尝试过各种迭代列表的方法 一
  • 如何向 UICollectionView 添加背景图像,该图像将滚动和缩放单元格

    我正在使用构建马赛克视图UICollectionView 我已经子类化了UICollectionViewFlowLayout布局一个可以滚动的固定网格水平和垂直 我还附上了一个UIPinchGestureRecognizer这样集合就可以缩
  • 带有 pandas 的多个堆叠条形图

    我正在尝试用 pandas 制作多个堆叠条形图 但遇到了问题 这是示例代码 import pandas as pd df pd DataFrame a 10 20 b 15 25 c 35 40 d 45 50 index john bob
  • IE8/9 中的 CORS 与 jQuery 和 XDomainRequest

    UPDATE 我强烈建议不要在 XDomainRequest 上投入任何时间 因为它是一个非常糟糕的实现 有很多限制 它基本上只适用于对非 ssl 服务器的 GET 请求 所以你不妨使用 jsonp 或其他什么 我正在使用 CORS 调用跨
  • 使 TinyMCE 图像选择对话框指向 Plone 上的默认文件夹

    克隆人 4 1 使 TinyMCE 图像选择器对话框指向站点默认文件夹 image bank 而不是当前文件夹的最简单方法是什么 这个 文件夹显示为相册将为 Plone 轻松提供基本的图像库支持 我希望能够实现这个功能 所有 Plone 开
  • SSIS - 再次出现内存不足错误

    我有 cca 25 个数据库 需要将其合并为 1 个数据库 首先 我尝试构建一个 ssis 包 它将每个表中的所有数据复制到一个地方 但随后出现错误 信息 缓冲区管理器的内存分配调用失败 10485760 字节 但无法交换任何缓冲区来缓解
  • 可能的 Java 编译器错误!程序无法使用某些编译器编译

    首先 介绍一点背景知识 如果不感兴趣 可以跳过一点 我很生气又很困惑 这应该是一个非常简单的用例 而且确实是我的代码has使用 Eclipse JDT 编译器编译得很好 所以到目前为止我一直在配置 Maven 以确保做到这一点 尽管它不能使
  • Python 装饰器对递归函数进行计时

    我有一个简单的装饰器来跟踪函数调用的运行时 def timed f def caller args start time time res f args end time time return res end start return c
  • 在VS 2015社区版中将.Net框架从4.5.2更改为4.5时出现编译错误

    在 VS 2015 社区版中将我的 Net 框架从 4 5 2 更改为 4 5 后 我收到以下错误 有谁知道问题是什么以及如何解决这个问题 看起来编译版本不同 但我已经将 web config 修改为 4 5 应用程序中的服务器错误 编译错
  • Apollo 2.0.0 Graphql cookie 会话

    有人可以帮助我吗 在 Apollo 2 0 之前我的设置如下 我有一个 server js 其中使用了express和graphql server express 我有一个仅 http 的 cookie 会话 当用户登录时 我将 jwt 令
  • R 在多个数据框列中查找值

    给定一个数据集 其中值可以位于数据帧中任意一组列中 df lt data frame h1 c a b c a a b c h2 c b c d b c d b h3 c c d e e e d c 如何获得指定哪些行包含目标值的逻辑向量
  • 将 Amazon RDS 表名称重命名为大写字母会引发错误

    我将 MySQL 数据库表导入到 Amazon RDS 我的问题是我的查询不再有效 并且收到错误消息 表明我的表 文件夹 不存在 原因是表名不全是小写 导致查询抛出这个错误 有没有一种方法可以使用 MySQL Workbench 针对 Am
  • 如何删除最后一个字符

    如何删除字符串的最后一个字符substring或者什么 例如 var query String begin query test 1 line 5 end 输出必须是 query gt test1 line 5 第三个选项是这样的 SetL
  • Python 中使用 pop() 进行列表操作

    简而言之 我需要根据索引从列表中删除多个项目 但是 我不能使用 pop 因为它会改变索引 没有一些笨拙的补偿系统 有没有办法同时删除多个项目 我有一个遍历列表的算法 如果条件正确 则通过 pop 方法删除该项目 由于这一切都是在循环中完成的
  • 错误 file_get_contents():读取 8192 字节失败,errno=21

    我有一个简单的脚本 它在每个子文件夹的每个文件中搜索给定的字符串 它工作得很好 直到我相信我的 PHP 已更新 我不太确定是否是因为这个 这是代码