php - XAMPP 配置问题:无法访问外部文件/url
问题描述
我最近设置了 XAMPP。设置很简单,但我似乎不知道正确的调整来让它与外部网络世界对话。
无论我如何尝试阅读外部 URL,它都会告诉我在哪里下车。
(在 PHP 中)我尝试了简单的 file_get_contents 路线。当那失败时,有人指出我卷曲。我在 php.ini 中启用了它,但也失败了。
我得到非常无用的“无法打开文件”
致命错误:无法在 C:\xampp\htdocs\includes\PdfToText.phpclass:1665 中打开“https://earth.esa.int/documents/10174/1514862/Swarm_Level-2_TEC_Product_Description”堆栈跟踪:#0 #2 { main} 在第 1665 行的 C:\xampp\htdocs\includes\PdfToText.phpclass 中抛出
我知道这似乎是 PdfToText 类(上图)的错误,但这只是显示错误的一种方式。从引号之间取出文件,尝试加载它,这很好。无论尝试什么,它都不想从外界打开文件。
我假设它是一个端口/代理/某物,但我整天都在谷歌上进出stackoverflow,我在任何地方都看不到同样的问题。
解决方案
快速解决:
找到你的 php.ini 文件:
php -i | grep "Loaded Configuration File"
查找allow_url_fopen并将其设置为 On
allow_url_fopen = On
解释:
发生此错误是因为当您使用 file_get_contents 或 fopen 等函数时,您正在处理文件指针,allow_url_fopen 将让您做的是解析 url,创建 tcp 连接并创建指向该 tcp 连接的网络文件指针,这将被处理通过php,因为它是一个文件。
出于安全原因,此设置在某些安装中被禁用。
检查文档:
推荐阅读
- c++ - opengl - glBindTexture 是否覆盖活动纹理单元的内容
- python - 如何从包含表单应用程序条目值的字典中获取值
- python - Python:“numpy.float64”对象不可调用
- c# - System.Xml.Linq.XContainer.Element(...) 在尝试将 XML 文件加载到 ListView 时返回 null
- python - 尝试 - except 子句,NoSuchElementExcepts 错误
- java - 拦截器没有被调用
- html - 如何将多个 HTML 表格以及 html 表格的 css/style 导出到单个 excel 文件中?
- javascript - Discord 机器人在一次响应后停止工作
- python - SymPy:具有组合平方根的符号根上的多项式因式分解
- linux - Fortran 程序无法编译