为什么 file_get_contents 不起作用?

2024-04-10

为什么file_get_contents not为我工作?在下面的测试文件代码中,似乎我搜索过的每个示例都列出了此函数,但它从未被执行。这是网络托管服务的问题吗?有人可以在他们的服务器上测试这段代码只是为了看看地理编码数组输出是否真的作为字符串打印出来吗?当然,我试图将输出分配给一个变量,但是这个测试文件中没有输出......

<html>
<head>        
<title>Test File</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> 
</script>
</head>
<body>
<?    
$adr = 'Sydney+NSW';
echo $adr;
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=$adr&sensor=false";
echo '<p>'.$url.'</p>';
echo file_get_contents($url);
print '<p>'.file_get_contents($url).'</p>';
$jsonData   = file_get_contents($url);
echo $jsonData;
?>
</body>
</html>

Check file_get_contents PHP Manual http://php.net/file_get_contents return value. If the value is FALSE then it could not read the file. If the value is NULL then the function itself is disabled.

要了解更多可能出现问题的信息file_get_contents操作时,您必须启用错误报告和错误显示才能实际读取它们。

# Enable Error Reporting and Display:
error_reporting(~0);
ini_set('display_errors', 1);

您可以通过检查服务器上的 INI 值来获取有关调用失败原因的更多详细信息。一个值直接影响file_get_contents函数是allow_url_fopen http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen。您可以通过运行以下代码来完成此操作。您应该注意,如果它报告不允许使用 fopen,那么您必须要求您的提供商更改服务器上的此设置,以便任何需要此函数的代码都可以使用 URL。

<html>
    <head>        
        <title>Test File</title>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
        </script>
    </head>
    <body>
<?php

# Enable Error Reporting and Display:
error_reporting(~0);
ini_set('display_errors', 1);

$adr = 'Sydney+NSW';
echo $adr;
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=$adr&sensor=false";
echo '<p>', $url, '</p>';

$jsonData = file_get_contents($url);

echo '<pre>', htmlspecialchars(substr($jsonData, 128)), sprintf(' ... (%d)', strlen((string)$jsonData)), '</pre>';

# Output information about allow_url_fopen:
if (ini_get('allow_url_fopen') == 1) {
    echo '<p style="color: #0A0;">fopen is allowed on this host.</p>';
} else {
    echo '<p style="color: #A00;">fopen is not allowed on this host.</p>';
}


# Decide what to do based on return value:
if ($jsonData === FALSE) {
    echo "Failed to open the URL ", htmlspecialchars($url);
} elseif ($jsonData === NULL) {
   echo "Function is disabled.";
} else {
   echo '<pre>', htmlspecialchars($jsonData), '</pre>';
}

?>
    </body>
</html>

如果所有这些都失败,可能是由于使用了短开放标签,<?。因此,该答案中的示例代码已更改为使用<?php正确工作,因为无论设置什么配置选项,这都保证在所有版本的 PHP 中工作。要为您自己的脚本执行此操作,只需替换<? or <?php.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 file_get_contents 不起作用? 的相关文章

随机推荐

  • jarsigner 错误:java.time.DateTimeException:MonthOfYear 的值无效(有效值 1 - 12):0

    我在签署 Ionic android apk 时收到此错误 我使用的是 Kubuntu 17 04 使用 Ionic 3 安装了 java 8 我得到的错误 Enter Passphrase for keystore updating ME
  • 将文本添加到每个数组元素的开头

    我有一个数组 其中包含如下内容 ZS125 48ATab STR125YBTab KS125 24Tab ZS125 50Tab DFE125 8ATab ZS125 30Tab HT125 8Tab HT125 4FTab STR50Ta
  • Slim 框架:路由和控制器

    最初 我的 Slim Framework 应用程序具有经典结构 索引 php
  • PropertyChangedEventHandler 未异步触发

    我已经实现了此属性来隐藏和显示元素 private bool isWorking false public bool IsWorking get return this isWorking set this isWorking value
  • SQL 分割字符串并获取 NULL 值而不是空字符串

    如何拆分字符串并获取 NULL 值而不是空字符串 我对两种方法特别感兴趣STRING SPLIT and XML 我希望这个查询 SELECT FROM STRING SPLIT a b d 将返回第三行NULL而不是空字符串 有没有简单的
  • ClickOnce 有哪些替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我用过单击一次 https en wikipedia org wiki ClickOnce多年来 我经历
  • 检测字符是简体字还是繁体字

    我找到了这个question https stackoverflow com questions 2727804 how to determine if a character is a chinese character这使我能够检查字符
  • KarmaJS、Jasmine、RequireJS 等:如何使用 Require 测试模块

    使用 RequireJS 运行 Karma Jasmine 测试 起步 帮助 求救 目前 我有一个练习项目 旨在熟悉 KarmaJS 以及整个单元测试 广泛的问题是 我对 Karma 在幕后所做的事情确实没有透明的了解 而且我似乎无法在相关
  • 使用 boost::karma 格式化纬度/经度字符串

    我需要格式化double值转换为具有非常特定格式的坐标字符串 DDMMSS SSX where DD 是完整的学位 MM 是完整的分钟 SS SS 是带有小数的秒 X 是 N 或 S 具体取决于半球 这些字段需要用零填充 不能接受空格 格式
  • Service Worker 注册时出错

    我正在尝试注册服务工作者 但出现以下错误 注册ServiceWorker失败 当前的URL协议 不支持原点 null 我在 localhost 下使用 Node js 我有我的索引 html and service worker js在同一
  • 使用 es2017 的 async wait 重构 Promise 和 Promise.all

    我有一个照片上传处理程序的工作版本 但我想看看它如何与异步等待一起工作 在下面的内容之前是我使用 Promise 的工作代码 onChangePhotos e gt e preventDefault let files e target f
  • 如果单元测试失败则 make 失败

    我有一个用于编译静态库的 makefile 该生成文件具有编译与静态库关联的单元测试套件的规则 编译测试套件后 将调用 python 脚本来运行测试并记录结果 它看起来像这样 unit MAKE C cXbase unit python T
  • 如何在ssl连接期间加载客户端证书以进行相互身份验证?

    我无法在 ssl 连接上加载客户端证书 以便服务器可以对其进行身份验证 可能是什么问题 LoadCertificates 函数可以正常加载服务器证书 我能够在客户端获取服务器证书 但无法在服务器端获取客户端证书 我还想验证证书是否由正确的
  • Javascript?:如何动态添加文本输入/表单字段到 HTML 表单?

    我正在构建一个网络表单 其中有一个输入列表 到目前为止 一切都很好 但是 如何添加链接 按钮以将另外 5 个字段添加到列表中 例如
  • Xcode 4 卡在“扫描工作副本”上

    我刚刚归档并提交了一个项目 当我返回打开该项目时 它挂在 扫描工作副本 上 我可以导航 但无法查看项目文件 这实际上只是一个链接问题 选择您的项目并确保您已打开 身份和类型 它位于右侧编辑器栏中 使用 查看 按钮切换打开和关闭 您可以在那里
  • FFmpeg 支持哪些编解码器和格式? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我需要 FFmpeg 支持的编解码器和格式列表 我在哪里可以找到它 正确的编解码器 ffmpeg codecs Formats ffm
  • findOrCreate 与 include -sequelize.js

    我想创建一个比赛 如果不存在 以及Match 如果不存在 与锦标赛关联 let match created await Match findOrCreate where scoreHome 97 Tournament name USA So
  • PhpStorm 资源根的相对路径

    我使用 PhpStorm 9 并且我的项目结构与此类似 src elements element alfa element alfa html element alfa scss templates application html ind
  • 无法删除 nav_host_fragment 顶部的空间

    我刚刚实现了底部导航 AS 的默认设置 文件 gt 新建 gt 活动 gt 底部导航活动 除了顶部的空格之外 一切都很好nav host fragment 由于它是在 ConstraintLayout 中生成的 我尝试清理约束并设置顶部约束
  • 为什么 file_get_contents 不起作用?

    为什么file get contents not为我工作 在下面的测试文件代码中 似乎我搜索过的每个示例都列出了此函数 但它从未被执行 这是网络托管服务的问题吗 有人可以在他们的服务器上测试这段代码只是为了看看地理编码数组输出是否真的作为字