如何解决此警告:file_get_contents(): Unable to find the wrapper "public"?

Posted

技术标签:

【中文标题】如何解决此警告:file_get_contents(): Unable to find the wrapper "public"?【英文标题】:How to fix this warning: file_get_contents(): Unable to find the wrapper "public"? 【发布时间】:2011-05-22 21:00:12 【问题描述】:

我需要从下载的文件中读取一些元信息。但我不知道该怎么做。

这是我的代码:

// Path form field_file
$file = 'public://directory/filename.txt';
file_get_contents($file);

此代码导致此警告:

警告:file_get_contents():无法找到“公共”包装器 - 您在配置 php 时是否忘记启用它?

你知道我做错了什么吗?

【问题讨论】:

什么是“公共”包装?从来没有听说过。这是 Drupal 特有的吗?你需要从下载的什么文件中读取什么样的元信息? drupal.org/node/555118 是的,它是 drupal 特定的包装器。我需要从 TTF 文件中获取字体的名称和类型。 【参考方案1】:

共有三个内部流包装器privatepublictemporary,它们在this文件中定义。

你可能想要file_get_mimetype(),file_get_contents 是一个 PHP 函数,不会知道 drupal 文件 api。

file_get_contents(drupal_realpath($file));

会做阅读的诀窍。

如需上传,请查看file_save_upload()

【讨论】:

谢谢。但它的工作原理很奇怪。如果“目录”不存在,drupal_realpath 将返回 FALSE。【参考方案2】:

我相信这些包装器在 hook_boot() 或其他一些早期阶段不可用。 因此,请将您的代码移到另一个地方并检查是否可以解决问题。

【讨论】:

【参考方案3】:

我正在使用的修复是以下代码:

echo base_path().variable_get('file_public_path',conf_path().'/files');

它仍然没有解释为什么流不起作用。

【讨论】:

以上是关于如何解决此警告:file_get_contents(): Unable to find the wrapper "public"?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 PHP 中 file_get_contents() 函数的警告?

如何解决此警告:“React Hook useEffect 缺少依赖项:'history'”?

如何解决此未经检查的作业警告?

如何解决此错误“警告:尝试呈现其视图不在窗口层次结构中”?

访问 youtube api 时出错:“警告:file_get_contents() [function.file-get-contents]: URL > file-access is dis

如何解决来自 Google Chrome 的此警告? Cookie... `SameSite=None` 但没有 `Secure`