导航:首页 > 编程语言 > phpfopenurl

phpfopenurl

发布时间:2022-04-24 12:24:19

1. 被禁用了fopen(url)和fsockopen的php还能访问url吗

file_get_contents(url)

2. php中fopen()如何理解

fopen
(PHP 3, PHP 4, PHP 5)

fopen -- 打开文件或者 URL
说明
resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

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

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

如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。

注: 所支持的协议列表见附录 M。某些协议(也被称为 wrappers)支持 context 和/或 php.ini 选项。参见相应的页面哪些选项可以被设定(例如 php.ini 中用于 http wrapper 的 user_agent 值)。

注: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见参考 CXLV, Stream Functions。

注: 自 PHP 4.3.2 起,对所有区别二进制和文本模式的平台默认模式都被设为二进制模式。如果在升级后脚本碰到问题,尝试暂时使用 't' 标记,直到所有的脚本都照以下所说的改为更具移植性以后。

mode 参数指定了所要求到该流的访问类型。可以是以下:

表格 1. fopen() 中 mode 的可能值列表

mode 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

注: 不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用符合操作系统的行结束符号。基于 Unix 的系统使用 \n 作为行结束字符,基于 Windows 的系统使用 \r\n 作为行结束字符,基于 Macintosh 的系统使用 \r 作为行结束字符。

如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。

Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n。与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。

默认的转换模式依赖于 SAPI 和所使用的 PHP 版本,因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了 \n 作为行结束符,但还要期望这些文件可以被其它应用程序例如 Notepad 读取,则在 mode 中使用 't'。在所有其它情况下使用 'b'。

在操作二进制文件时如果没有指定 'b' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

注: 为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。

注: 再一次,为移植性考虑,强烈建议你重写那些依赖于 't' 模式的代码使其使用正确的行结束符并改成 'b' 模式。

如果也需要在 include_path 中搜寻文件的话,可以将可选的第三个参数 use_include_path 设为 '1' 或 TRUE。

如果打开失败,本函数返回 FALSE。

例子 1. fopen() 例子

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w");
?>

如果在用服务器模块版本的 PHP 时在打开和写入文件上遇到问题,记住要确保所使用的文件是服务器进程所能够访问的。

在 Windows 平台上,要小心转义文件路径中的每个反斜线,或者用斜线。

<?php
$handle = fopen("c:\\data\\info.txt", "r");
?>

3. php 用fopen打开文件,提示Resource id #4

fopen打开文件或者url,返回的是一个资源,
如果想获取打开文件的内容,需要fread配合
fread($handle, 1000);//1000表示读取内容长度

4. 关于PHP中fopen的问题

这是因为WEB服务器的进程对这个文件夹没有写的权限,你可能不熟悉UNIX的文件系统rwx的权限管理,你用超级用户把这个文件夹权限设置为0777就可以工作了,建议深入学习相关知识。

http://..com/question/89003911.html?si=1

控制面板--管理工具--服务---Apache

重新启动、、、

5. 请教一下php 中fopen函数的用法

这位朋友,就拿你的D盘下的index.html文件来说,你可以fopen("d:\\..\index.html","r") //其中“r”是以只读的方式进行打开,你还可以使用其他的参数。

fopen()函数可以打开url或者相应的文件,如txt之类的。

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

如果你写的文件 是 scheme:// 格式 ,scheme 这并不是一个固定的。只是说,这里可能是 ftp http smtp 之类的协议名。
如果是这种格式的话,文件就会被当成一个远程文件,类似下载地址。

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

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

最后说的是,如果这是一个远程文件,它会检查系统设置有没有这种访问方式。常见的 http:// 肯定是有的啦,如果你写的是 tmd:// 那就没办法访问了。

7. php 使用fopen打开网络地址超时问题

可以使用CURL来操作 设置超时的时间
private function setQueue($data,$q="MultiMsgSend") {
$str_url = 'http://10.210.71.85/send_message.php';
$data = "queuename={$q}&queuedata={$data}";

$ch_curl = curl_init ();
curl_setopt ( $ch_curl, CURLOPT_TIMEOUT, 3 );//超时3s
curl_setopt ( $ch_curl, CURLOPT_HEADER, false );

curl_setopt($ch_curl,CURLOPT_POST,TRUE);
curl_setopt($ch_curl,CURLOPT_POSTFIELDS,$data);
curl_setopt ( $ch_curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch_curl, CURLOPT_URL, $str_url );

$str_return = curl_exec ( $ch_curl );

if ($str_return === false)
{
$this->setErrorNo(11);
return false;
}
curl_close ( $ch_curl );
return true;
}

8. php 中 fopen()打开文件(Url)失败是什么原因

需要在php.ini中将相关配置开启

fopen原型:

resourcefopen(string$filename,string$mode[,bool$use_include_path=false[,resource$context]])

如果PHP认为filename指定的是一个已注册的协议,而该协议被注册为一个网络URL,PHP将检查并确认allow_url_fopen已被激活。如果关闭了,PHP将发出一个警告,而fopen的调用则失败。

allow_url_fopen:本选项激活了URL形式的fopen封装协议使得可以访问URL对象例如文件。默认的封装协议提供用ftp和http协议来访问远程文件,一些扩展库例如zlib可能会注册更多的封装协议。

注意:

  1. 出于安全性考虑,此选项只能在php.ini中设置。

  2. 此选项是紧接着版本4.0.3发布后引进的。版本4.0.3以及之前的版本只能在编译时通过配置项--disable-url-fopen-wrapper来取消此特性。

9. php语句中$fp = @fopen($url, "r") or die("超时");其中的@是什么意思什么地方需要用到这个符号

屏蔽错误消息,在有错误信息返回的 地方都可以用。

10. php 用fopen 打开类似于"\\192.168.1.12\shared\file\test.txt"这样的路径,应该怎样写代码

局域网的ip,如果你有权限访问,直接
$fp=fopen("http://192.168.1.12/shared/file/test.txt","rb");
不就行了吗,
php.ini配置文件中要开启allow_url_fopen,设置为on

阅读全文

与phpfopenurl相关的资料

热点内容
云服务器关机网址不见了 浏览:69
余冠英pdf 浏览:755
开发一个app上市需要什么步骤 浏览:28
phpsleep方法 浏览:430
时间同步服务器ip地址6 浏览:926
钢琴谱pdf下载 浏览:524
香港阿里云服务器怎么封udp 浏览:875
APp买海鲜到哪里 浏览:501
辽油社保app总提示更新怎么办 浏览:586
导入源码教程视频 浏览:613
天翼贷app在哪里下载 浏览:186
app开发源码查看器 浏览:516
程序员发展到了一个瓶颈 浏览:120
程序员去机房干嘛 浏览:697
英雄训练师怎么看曾经服务器 浏览:546
魔兽世界单机输入gm命令 浏览:372
51单片机最大负跳距是多少 浏览:418
android聊天控件 浏览:128
导致压缩机坏的原因 浏览:295
如何多次选取文件夹 浏览:280