使用PHP获取网络文件的实现代码

使用PHP获取网络文件的实现代码,第1张

复制代码

代码如下:

<?php

//设置我们将要使用的文件

$srcurl

=

"http://localhost/index.php"

$tempfilename

=

"tempindex.html"

$targetfilename

=

"index.html"

?>

<HTML>

<HEAD>

<TITLE>

Generating

<?php

echo("$targetfilename")

?>

</TITLE>

</HEAD>

<BODY>

<P>Generating

<?php

echo("$targetfilename")

?>...</P>

<?php

//首先删除上次 *** 作可能遗留下来的临时文件

//这个过程可能会提示错误,所以我们使用@以防止报错。

@unlink($tempfilename)

//通过一个URL的请求装入动态版本。

//在我们接收到相关内容之前,Web服务器会对PHP进行处理

//(因为本质上我们是在模拟一个Web浏览器),

//所以我们将获得的是一个静态的HTML页面。

//'r'指出我们只要求对这个“文件”进行读 *** 作。

$dynpage

=

fopen($srcurl,

'r')

//处理错误

if

(!$dynpage)

{

echo("<P>Unable

to

load

$srcurl.

Static

page

".

"update

aborted!</P>")

exit()

}

//将这个URL的内容读入到一个PHP变量中。

//指定我们将读取1MB的数据(超过这个数据量一般是意味着出错了)。

$htmldata

=

fread($dynpage,

1024*1024)

//当我们完成工作后,关闭到源“文件”的连接。

fclose($dynpage)

//打开临时文件(同时在这个过程中建立)以用来写入(注意'w'的用法).

$tempfile

=

fopen($tempfilename,

'w')

//处理错误

if

(!$tempfile)

{

echo("<P>Unable

to

open

temporary

file

".

"($tempfilename)

for

writing.

Static

page

".

"update

aborted!</P>")

exit()

}

//将静态页面的数据写入到临时文件中

fwrite($tempfile,

$htmldata)

//完成写入后,关闭临时文件。

fclose($tempfile)

//如果到了这里,我们应该已经成功地写好了一个临时文件,

//现在我们可以用它来覆盖原来的静态页面了。

$ok

=

copy($tempfilename,

$targetfilename)

//最后删除这个临时文件。

unlink($tempfilename)

?>

<P>Static

page

successfully

updated!</P>

</BODY>

</HTML>

PHPExcel 通过 PHPExcel_Shared_OLERead 类的 read 方法读取文件

但 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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8124921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存