gpt4 book ai didi

php5读取远程文件的有效方式

转载 作者:行者123 更新时间:2023-12-04 05:37:09 25 4
gpt4 key购买 nike

我最近从 php4 升级到 php5,随之而来的是我所有的远程 php 文件访问不再有效的通知。我一直在对此进行大量研究,但对于在 php5.xml 中包含远程 url 的正确方法是什么,我似乎没有明确的答案。

第一个例子是以这种方式包含文件

<?php
$data = file_get_contents("http://example.com/example.inc.php",0);
echo $data;
?>

第二种是这样
<?php
$ch = curl_init("http://example.com/example.inc.php");
curl_exec($ch);
curl_close($ch);
?>

第三个是在我的 php.ini 文件中设置
allow_url_include = On      
allow_url_fopen = On

并使用旧的
<?php include_once('http://example.com/example.inc.php');?>

我想正确且安全地做到这一点。

最佳答案

所有解决方案都是正确的,AFAIK 的安全性没有真正的区别。

我认为差异可以总结如下:

ini 设置提供先前版本中已知的行为。默认情况下禁用它们的原因是安全线程,但这等于所有三种解决方案。包含远程文件是一个安全问题,无论您是否控制 rmeote 站点。

file_get_contents() 和 curl 扩展会产生一些开销,因为您必须缓冲内容,但对于 php 包含文件来说,这更像是一种装饰性的东西。在阅读脚本时,它们的用法稍微复杂一些。但是缓冲也增加了好处:例如,您可以创建本地缓存或针对基本合理性检查的校验和。还可以在执行之前进行语法检查,从而防止调用脚本崩溃。

Curl 作为 php 扩展提供。因此 curl 解决方案仅在安装扩展程序时有效,但它提供了更高级别的自由度和更多选项。如果您不需要那些留在内置函数中。

关于php5读取远程文件的有效方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11791876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com