
但 read 方法里使用了 is_readable 函数来确认文件是否存在,而 is_readable 不能作用于 url
所以不可直接远程读取
但若绕过 is_readable 函数的话,就是可以的
public function read($sFileName)
{
// Check if file exists and is readable
if(!is_readable($sFileName)) {
throw new Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable.")
}
// Get the file data
$this->data = file_get_contents($sFileName)
1、用file_get_contents或者fopen、file、readfile等函数读取url的时候,会创建一个名 为$http_response_header的变量来保存http响应的报头.[php] view plain copy <?php $url = 'http://www.baidu.com' $html = file_get_contents($url) print_r($http_response_header) //输出结果 Array( [0] => HTTP/1.1 200 OK [1] => Date: Tue, 06 Nov 2012 08:51:01 GMT [2] => Server: BWS/1.0 [3] => Content-Length: 9803 [4] => Content-Type: text/htmlcharset=gbk [5] => Cache-Control: private [6] => Expires: Tue, 06 Nov 2012 08:51:01 GMT [7] => Set-Cookie: BAIDUID=6635735B51B28640F425F802C49340F2:FG=1 expires=Tue, 06-Nov-42 08:51:01 GMT path=/ domain=.baidu.com [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM " [9] => Connection: Close ) ?> 2、使用fopen等函数打开的数据流信息可以用 stream_get_meta_data来获取。示例代码二:[php] view plain copy <?php $fp = fopen($url, 'r') print_r(stream_get_meta_data($fp)) fclose($fp) //输出结果 Array ( [wrapper_data] => Array ( [0] => HTTP/1.1 200 OK [1] => Date: Tue, 06 Nov 2012 08:54:22 GMT [2] => Server: BWS/1.0 [3] => Content-Length: 9803 [4] => Content-Type: text/htmlcharset=gbk [5] => Cache-Control: private [6] => Expires: Tue, 06 Nov 2012 08:54:22 GMT [7] => Set-Cookie: BAIDUID=347578BCBD709F27925BDD8B05364A73:FG=1 expires=Tue, 06-Nov-42 08:54:22 GMT path=/ domain=.baidu.com [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM " [9] => Connection: Close ) [wrapper_type] => http [stream_type] => tcp_socket [mode] => r [unread_bytes] => 0 [seekable] => [uri] => http://www.baidu.com [timed_out] => [blocked] => 1 [eof] => ) ?> 3、get_headers()也可以获取请求url的响应报文。示例代码三:[html] view plain copy <?php print_r(get_headers($url)) Array ( [0] => HTTP/1.1 200 OK [1] => Date: Tue, 06 Nov 2012 08:58:41 GMT [2] => Server: BWS/1.0 [3] => Content-Length: 9803 [4] => Content-Type: text/htmlcharset=gbk [5] => Cache-Control: private [6] => Expires: Tue, 06 Nov 2012 08:58:41 GMT [7] => Set-Cookie: BAIDUID=87B6F26EEC74F2B8F7FABA934DC6BB24:FG=1 expires=Tue, 06-Nov-42 08:58:41 GMT path=/ domain=.baidu.com [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM " [9] => Connection: Close ) ?> 4、php5中新增的参数context使这些函数更加灵活,通过它我们可以定制http请 求,甚至post数据。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)