关于php fopen函数的scheme://...问题?

fopen()将filename指定的名字资源绑定到一个流上。如果filename是"scheme://..."的格式,则被当成一个URL,PHP将搜索协议处理器(也被称... fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP
将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

如果 PHP 认为 filename
指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。

如果 PHP 认为 filename
指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen
已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
因为没有什么基础,自学的,看这段话很晕,能否告诉下"scheme://..." 的格式,搜索协议处理器,安全模式或者 open_basedir,已注册的协议这些名词是什么意思,在哪有详细说明,万分感谢。
展开
 我来答
小小幽魂
2014-01-17 · TA获得超过1469个赞
知道小有建树答主
回答量:751
采纳率:100%
帮助的人:688万
展开全部
如果你写的文件 是 scheme:// 格式 ,scheme 这并不是一个固定的。只是说,这里可能是 ftp http smtp 之类的协议名。
如果是这种格式的话,文件就会被当成一个远程文件,类似下载地址。

如果是服务器上的文件,那它就会试着打开文件,“一个打开了的文件” 这种逻辑的东西,有人叫 数据流,有人叫资源,手册上就简称为一个流。因为你可以从上面读取/写入数据。

就像一条河。你可以捞取河水上飘过的东西,也可以放上东西让它飘走。所以称为流。

最后说的是,如果这是一个远程文件,它会检查系统设置有没有这种访问方式。常见的 http:// 肯定是有的啦,如果你写的是 tmd:// 那就没办法访问了。
小叶顾10
2014-01-17 · TA获得超过256个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:110万
展开全部
已注册的协议比如:ftp://开头的URL地址, http://开头的URL地址;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式