首页 开发编程 正文

php怎么指定文件

2、PHP抓取网页图片并且另存为的实现代码?使用JS实现单击连接保存图片2种形式都可以第一种:3、论坛中下载的好多文件都是php格式的?你可以用记事本把下下来的php文件打开看下。里面一般是因为你没有登录或是未有阅读权限造成无法下载数据源的。看到下载地址不要直接单击,使用迅雷下载4、PHP下载网络资源文件?引言在程序内下载资源文件,在...

php怎么指定文件,如何设置文件夹的权限?

你是用服务器上哪个角色执行的PHP,就给上传目录设置那个角色的可写权限。

PHP抓取网页图片并且另存为的实现代码?

JS:使用JS实现单击连接保存图片2种形式都可以第一种: 第二种:PHP:

下载

test.php文件代码:

论坛中下载的好多文件都是php格式的?

你可以用记事本把下下来的php文件打开看下。里面一般是因为你没有登录或是未有阅读权限造成无法下载数据源的。建议,看到下载地址不要直接单击,而是用右键->使用迅雷下载

PHP下载网络资源文件?

引言

在程序内下载资源文件,这本身就是一个充满了不确定因素的事情。可能会因为网络超时连接中断,或者程序故障抛出各种异常,在实际中我们一般要避免在程序流程中下载文件。

如果是实在无法避免,用什么办法比较高效呢?或者说比较轻量级呢?本文就来说一说。

学习时间

最直接的办法就是使用内置函数 file_get_contents。参数形式如下:

int file_put_contents( string $filename, mixed $data[, int $flags = 0[, resource $context]] )

这个函数设计的很巧妙,兼容了很多场景下的使用。我们只需要按照相应的参数填入,就可以组装出各种各样的功能。

如果是下载资源,那么会分为两步。第一,把远程资源拿到本地。第二,把该资源写入本地文件。使用代码实现如下:

file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));

其中在位置参数 $data 的位置,传入了一个fopen生成的文件句柄。

根据函数手册上所说,如果$data 指定的是流,则该流的缓冲区将被复制到指定的文件。对标的函数是 stream_copy_to_stream。那样写起来就得是这样的:

是不是没有file_put_contents精简。难怪很多敲代码的老司机,习惯于使用这一个函数进行网络请求呢!

文件操作

纯粹使用文件操作,也没有问题,使用PHP提供的 fopen fclose fwrite fread 等函数,完全可以胜任。我们将其封装为一个助手函数:

因为不能确定原始文件的长度,在读写的时候,需要注意缓存区的大小,分块读入和写入。其中参数 1024 * 8,指定每次读写 8K 字节。使用 feof 判断文件是否到尾部。

网络请求

既然是网络资源文件,使用上面的函数,无非都要发起 HTTP 请求。既然是网络请求,何不把这个功能交给 cURL 呢?这样对于请求头,请求体,响应体等等全程 HTTP 环节,都可以在程序内操作,容错性肯定不差。

下面我们使用 cURL 库进行文件请求操作:

如果是小小的资源文件,下载起来不费时间,也不会阻碍接下来的流程。如果是超大文件,费时间,而且还可能中断,有没有断点续传?有没有自动压缩?这都是问题。

所以,使用网络请求下载大文件,这已经超出了 PHP 内置函数的范畴。我们需要功能更为强大的下载器,多资源,多线程,断线续传,自动重试。

写在最后

本文通过3中方法对比了实现小文件下载的功能,各有优劣,根据不同的场景需要开发者做出适当的选择。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

下载的php源码怎么运行呢?

要想运行PHP代码,你得现有一个服务器环境。

1. 在网上自己下载一个xampp,然后安装。

2. 把你的代码放到xampp\htdocs\里面。

3. 打开浏览器,输入127.0.0.1/文件名.php比如,你得文件有个叫index.php的,直接输入127.0.0.1/index.php访问,就开始执行了。

4.建议在htdocs里面添加文件夹,防止混乱。

5. 也可以将默认的htdocs目录更改到其他位置,这个网上介绍很多。

本文转载自互联网,如有侵权,联系删除