精华内容
下载资源
问答
  • 今天分享的是我在学习PHP文件操作部分中实现一个下载文件函数封装时遇到的问题(小文件没问题,大文件总是下载失败)和解决的过程。 进入正题: 先贴出OJBK代码段function down_file($filename,$allowDownExt=...

    PHP下载文件函数封装及下载大文件解决方案

    大家好,我是Yangrl.
    今天分享的是我在学习PHP文件操作部分中实现一个下载文件函数封装时遇到的问题(小文件没问题,大文件总是下载失败)和解决的过程。
    进入正题:
    先贴出OJBK代码段

    function down_file($filename,$allowDownExt=array ('jpg','jpeg','gif', 'rar','zip','png','txt','html')) {
            //检测文件是否存在,并且可读
            if(!is_file($filename) && is_readable($filename)) {
                return false;
            }
    
            //获取文件的扩展名
            $fileext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));
    
            //检测文件类型是否允许下载
            if(!in_array($fileext,$allowDownExt)) {
                return false;
            }
    
            //设置脚本的最大执行时间,设置为0则无时间限制
            set_time_limit(0);
    
            //通过header()发送头信息
            //因为不知道文件是什么类型的,告诉浏览器输出的是字节流
            header('content-type:application/octet-stream');
    
            //告诉浏览器返回的文件大小类型是字节
            header('Accept-Ranges:bytes');
    
            //获得文件大小
            $filesize=filesize($filename);
    
            //告诉浏览器返回的文件大小
            header('Accept-Length:'.$filesize);
    
            //告诉浏览器文件作为附件处理并且设定最终下载完成的文件名称
            header('content-disposition:attachment;filename=yangrl'.basename($filename));
    
            //针对大文件,规定每次读取文件的字节数为4096字节,直接输出数据
            $read_buffer=4096;
            $handle=fopen($filename, 'rb');
            //总的缓冲的字节数
            $sum_buffer=0;
    
            //只要没到文件尾,就一直读取
            while(!feof($handle) && $sum_buffer<$filesize) {           
                echo fread($handle,$read_buffer);
                $sum_buffer+=$read_buffer;
            }
    
            //关闭句柄
            fclose($handle);
            exit;
        }

    **2.rar为一个18.8MB大小的压缩文件,2_1.rar为一个1.70 GB大小的压缩文件(之前还有个1.rar,是一个几百KB的压缩文件,就不展示了,和2.rar大小一个级别的都能成功下载)

    运行后测试,首先下载2.rar,下载成功保持在了浏览器下载目录里
    description
    description

    description


    然后继续测试下载2_1.rar,问题出现:

    description

    description

    我连续下载了5次,但没有一次是成功下载,或多或少都没下载完整,那啷个办耶?

    description

    好吧,一顿百度过后,各路大神都有自己的一套,可一一尝试对我的这段代码都没用啊,最后谷歌到了一行代码 “set_time_limit(0);”:设置脚本最大执行时间,设置为0则无限制,然后。。“山猫山猫,我是海鸥,连下两次成功,over!”
    description
    description

    问题就解决了!感兴趣的小伙伴可以自己深入探究我就不啰嗦啦哈哈哈。也希望大家能指出我的不足,分享自己的解决方法。

    “如果真诚地试着帮助他人,必然也同时帮助了自己。”——鲁迅
    description

    展开全文
  • 本文给大家分享的是使用PHP通过正则匹配来实现下载CSS文件中的图片的功能,代码非常的简单使用,特别是对于经常扒别人网站的小朋友
  • //下载来的文件名称   var $save_path = "./www.phpfensi.com";//下载到本地的文件路径   var $localfile;//下载到本地文件的路径和名称   var $warning;//警告信息   var $redown=0;//是否重新...
  • php 文件下载 断点续传 原理

    千次阅读 2012-12-24 23:31:32
    php文件下载 文件下载就是把文件从服务器上面下下来,比如一个文件是http://www.xxx.com/1.rar(真实存在这个文件),直接在浏览器上面输入,是可以弹出下载对话框的,但是如果是一个图片地址,很可能就是不是下载了,而是...
    php文件下载

    文件下载就是把文件从服务器上面下下来,比如一个文件是http://www.xxx.com/1.rar(真实存在这个文件),直接在浏览器上面输入,是可以弹出下载对话框的,但是如果是一个图片地址,很可能就是不是下载了,而是用浏览器直接打开.还有就是为了不让客户端看到下载地址,最好也是不直接提供下载文件地址的.还有就是比如只有登录用户才能下载。。 等等 .所以还是要单独写个下载程序

    有几个响应头比较重要,记录下

    • Content-type
    • Content-Disposition
    • Content-Length
    • Pragma
    • Cache-control
    Content-type

    Content-type 告诉浏览器文件的MIME 类型,这是非常重要的一个响应头了,MIME种类繁多,真是太多了

    Content-Disposition

    Content-Disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。 嗯,就是这个头哟,激活弹出提示下载框

    因为MIME的类型非常多,很可能会在程序中漏掉一些MIME类型.可以这样,漏掉了类型,全部以"Content-type: application/octet-stream" "Content-Disposition: attachment; filename=xxx.xx"(xx.xx为文件名) 经过一些浏览器的测试发现下载下来的文件都是正确的

    Content-Length

    "Content-Length: 123" 就是告诉浏览器这个文件的大小是123字节,其实我发现好像不设置这个头,浏览器也能自己识别

    Pragma Cache-control

    把这2个头都设置成public 告诉浏览器缓存(其实对于缓存头 我有很多都没理解清楚 除了public 它表示全部都缓存,但是至于浏览器缓存不缓存,可能还不一定,我试了很多浏览器,没有一个是从浏览器缓存读文件的,但是从服务器上下的)

     

    在输出文件的时候,我看网上大概有2中方式:一种是一次性输出,一中是分段输出(每次输出一部分),我去csdn问了下,别人说分段输出好,减轻服务器压力,因为每次读文件的时候占的内存都少

    一个例子(里面的MIME很少,更多的MIME最好去网上找)

    class downLoad{
    	var $file_name;
    	var $file_dir;
    	var $buffer_size = 1024;
    	var $err = "";
    	public static $MIME_type = array(
    								"pdf"  =>"application/pdf",
    								"exe"  =>"application/octet-stream",
    								"zip"  =>"application/zip",
    								"doc"  =>"application/msword",
    								"xls"  =>"application/vnd.ms-excel",
    								"ppt"  =>"application/vnd.ms-powerpoint",
    								"gif"  =>"image/gif",
    								"png"  =>"image/png",
    								"jpeg" =>"jpg",
    								"mp3"  =>"audio/mpeg",
    								"wav"  =>"audio/x-wav",
    								"mpeg" =>"mpg",
    								"mpe"  =>"video/mpeg",
    								"mov"  =>"video/quicktime",
    								"avi"  =>"video/x-msvideo",				
    							);
    	public function __construct($file_dir="",$file_name=""){
    		$this->file_dir  = $file_dir;
    		$this->file_name = $file_name;
    		$this->path = $file_dir."/".$file_name;
    		$this->suffix = pathinfo($file_name,PATHINFO_EXTENSION);
    	}
    	
    	public function down(){
    		if(!file_exists($this->path)){
    			$this->err = "该文件被移除了";
    			return false;
    		}
    
    		$content_type = $this->getMIME($this->suffix);
    		$file_size = filesize($this->path);
    		
    		header("Content-type: ".$content_type);
    		header('Content-Disposition: attachment; filename="'.$this->file_name.'"');
    		
    		@header("Cache-control: public");
    		@header("Pragma: public"); 
    		header("Content-Length: ".$file_size);
    		ob_end_clean(); 
    		//readfile($this->path); 一次性读出来
    
    		$fp= fopen($this->path,"r");
    		$buffer_size = $this->buffer_size;
    		$cur_pos = 0; //记录读了多少了
    		
    		while(!feof($fp) && $file_size>$buffer_size+$cur_pos){
    			$buffer = fread($fp,$buffer_size); //每次读1024字节
    			echo $buffer;
    			$cur_pos += $buffer_size;
    		}
    		//把剩下的读出来 因为文件的带下很有很能不是1024 的整数倍
    		$buffer = fread($fp,$file_size-$cur_pos);
      		echo $buffer;
      		fclose($fp);
      		return true;		
    	}
    	
    	public function getMIME($key=""){
    		if($key == "" || !isset(self::$MIME_type[$key])){
    			return "application/octet-stream";
    		}
    		return self::$MIME_type[$key];
    	}
    }
    //	$x = new downLoad($file_dir,$file_name);  $file_dir路径 比如 all     $file_name文件名 比如 a.exe  合起来就是全部的路径了all/a.exe
    //	$x->down();


     

    php 断点续传

    这里面的断点续传指的是下载时候的断点续传的断点续传,上传的断点续传完全不明白原理

    一些预备的东西

    • http 状态码206的意思
    • 响应头 "Accept-Ranges: bytes"
    • 响应头 "Content-Range:bytes start-end/all"
    • fseek
    • ob_flush
    http 状态码 206

    请求的 header 必须包含一个 Range 字段,表明自己请求第几个字节到第几个字节的内容。如果服务器支持的话,就返回 206 Partial Content,然后使用 header 的 Content-Range 指明范围,并在 body 内提供这个范围内的数据。

    Accept-Ranges: bytes

    这个字段说明Web服务器是否支持Range(是否支持断点续传功能),如果支持,则返回Accept-Ranges: bytes,如果不支持,则返回Accept-Ranges: none.

    Content-Range:

    用于响应头,指定了返回的Web资源的字节范围。这个字段值的格式是: 开始字节位置—结束字节位置/Web资源的总字节数,一个例子:Content-Range:1000-3000/5000

    fseek : 该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量

    ob_flush : 该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量

    我测试了一下 ie7,8是不支持断点续传的(也许可以 但是我不会),苹果浏览器也不行.哎.......... (还好 firefox chrome Opera支持)

     

    断点续传的过程是这样的

        首先客户端发一次请求给php请求下载文件
        这时因为是第一次请求 所以请求头里面是没有 Range头的
        我用Fiddler抓包的截图
        请求头

        

     

    在php端 $_SERVER['HTTP_RANGE']可以取请求头里面的Rang, 因为第一次不存在这个,所以我们取文件内容就取全部,然后返回的状态码也是200

        响应头

     

     

     

        当传了一部分内容后,点击暂停,在点击几乎继续,抓包的响应头就有Range了

     

     

        php端返回的时候也把返回内容的范围返回了 Content-Range: bytes 4194304-37939151/37939152 是返回数据的范围
        Accept-Ranges: bytes表示支持断点续传
        Content-Length: 33744847 里面的值是根据请求的Range, 也就是 $_SERVER['HTTP_RANGE'], 和文件的总大小,相减得出来的
        另外http状态码是206

    例子

    	class downLoad
    	{
    		var $file_path;
    		var $file_name;
    		var $file_suffix;
    		var $speed = 1024; //表示下载速度1m
    		var $err = "";
    		var $range_start=0;
    		var $range_end;
    		var $http_range;
    		var $file_size;
    		public static $MIME_type = array(
    									"pdf"  =>"application/pdf",
    									"exe"  =>"application/octet-stream",
    									"zip"  =>"application/zip",
    									"doc"  =>"application/msword",
    									"xls"  =>"application/vnd.ms-excel",
    									"ppt"  =>"application/vnd.ms-powerpoint",
    									"gif"  =>"image/gif",
    									"png"  =>"image/png",
    									"jpeg" =>"jpg",
    									"mp3"  =>"audio/mpeg",
    									"wav"  =>"audio/x-wav",
    									"mpeg" =>"mpg",
    									"mpe"  =>"video/mpeg",
    									"mov"  =>"video/quicktime",
    									"avi"  =>"video/x-msvideo",				
    								);
    		public function __construct($file_path="",$http_ranges="",$speed=""){
    			$this->file_path = $file_path;
    			$this->file_name = basename($file_path);
    			$this->file_suffix = substr(strrchr($this->file_name, '.'),1);
    			$this->file_size= filesize($file_path);
    			$this->http_range = (isset($http_ranges) && !empty($http_ranges)!="")?$http_ranges:false;
    			!empty($speed)&&($this->speed = $speed);  
    		}
    		public function down(){
    			if(!file_exists($this->file_path)){
    				$this->err = "该文件被移除";
    				return false;
    			}
    			$file_path = $this->file_path;
    			$content_type = $this->getMIME($this->file_suffix);
    			$http_range = $this->http_range;
    			if($http_range){
    				//$http_range 的形式为 bytes=3145728-  差不多就是这个样子的
    				$http_range = preg_replace('/[\s|,]*/', '', $http_range);
    				$arr = explode('-',substr($http_range,6));
    				$this->range_start = ( isset($arr[0]) && !empty($arr[0]) ) ? $arr[0] : 0;
    				$this->range_end   = ( isset($arr[1]) && !empty($arr[1]) && $arr[1]!=0 ) ? $arr[1] : $this->file_size-1;
    			}
    
    			$this->setHeader();
    			
    			$fh =  fopen($file_path, "rb");			
    			fseek($fh, $this->range_start);
    			
    			$speed = $this->speed;
    			while(!feof($fh))
    			{
    				echo fread($fh, 1024*$speed);
    				ob_flush();
    				sleep(1);
    			}
    			fclose($fh);
    		}
    		public function getMIME($key=""){
    			if($key=="" || !isset(self::$MIME_type[$key])){
    				return "application/octet-stream";
    			}
    			return self::$MIME_type[$key];
    		}
    		public function setHeader(){
    			header('Cache-control: public');
    			header('Content-Type: application/octet-stream');
    			header('Content-Disposition: attachment; filename='.$this->file_name);						
    			if($this->http_range){
    				$range_start = $this->range_start;
    				$range_end = $this->range_end;
    				header('HTTP/1.1 206 Partial Content');
    				header('Accept-Ranges: bytes');
    				header( sprintf('Content-Length: %u',$range_end - $range_start) );
    				header( sprintf('Content-Range: bytes %s-%s/%s', $range_start, $range_end, $this->file_size) );
    			}else{
    				header("HTTP/1.1 200 OK");
    				header(sprintf('Content-Length: %s',$this->file_size));
    			}
    		}
    	}
    	//$http_range = isset($_SERVER['HTTP_RANGE'])?$_SERVER['HTTP_RANGE']:false;
    	//$x = new downLoad("all/1.exe",$http_range);
    	//$x->down();

    展开全文
  • 如何运行PHP文件

    千次阅读 2020-06-22 13:15:30
    今天,我们将讨论如何运行PHP文件。 如果您不熟悉PHP编程,本文将帮助您学习如何运行PHP脚本。 PHP是一种服务器端脚本语言,主要用于构建基于Web的应用程序。 这些范围可能从非常简单的博客到功能完善的电子商务...

    今天,我们将讨论如何运行PHP文件。 如果您不熟悉PHP编程,本文将帮助您学习如何运行PHP脚本。

    PHP是一种服务器端脚本语言,主要用于构建基于Web的应用程序。 这些范围可能从非常简单的博客到功能完善的电子商务网站。 实际上,PHP是用于Web开发的最流行的服务器端脚本语言之一。

    在本文中,我们将讨论运行PHP文件的不同方法。

    运行PHP文件的不同方法

    有两种运行PHP文件的方法。 运行PHP文件的首选方法是在Web服务器(如Apache,Nginx或IIS)中-这使您可以从浏览器运行PHP脚本。 这就是所有PHP网站的工作方式! 另一种方法是在命令行上运行PHP脚本,并且不需要您设置Web服务器。

    当然,如果要在线发布PHP页面,则必须进行Web服务器设置。 另一方面,从命令行运行PHP脚本对于执行常规任务很有用。 这些通常配置为在后台作为作业运行,并且由php命令在没有Web服务器的情况下运行。

    实际上,当今许多PHP脚本或应用程序都带有内置命令,这些命令用于执行各种操作,例如安装软件,导出和导入数据库实体,清除缓存等等。 您可能听说过Composer,它是PHP的依赖管理器,并且是为命令行PHP构建的最受欢迎的工具之一。

    在Web服务器上运行PHP文件

    如果要从Web服务器运行PHP脚本,则需要使用支持该脚本的Web服务器之一对其进行配置。 对于Windows,IIS Web服务器是最受欢迎的服务器之一。 另一方面,Apache和Nginx是其他操作系统广泛使用的Web服务器。

    好消息是,当您登录新服务器时,大多数托管服务提供商都将为您提供一台已经安装了PHP的Web服务器。

    在浏览器中运行PHP文件以使用XAMPP进行开发

    如果要在自己的计算机上的浏览器中运行PHP文件,则需要设置PHP开发堆栈。 您至少需要PHP,MySQL和Apache或Nginx之类的服务器。 MySQL用于设置您的PHP应用程序可以使用的数据库。 当然,您可以选择与其他数据库引擎一起使用,但是MySQL是与PHP一起使用的最受欢迎的数据库之一。

    我建议您仅下载并安装XAMPP之类的程序,而不是单独下载所有这些软件并进行配置以使其协同工作。 它将包括所有必需的软件,并使您立即设置运行PHP。 是的,它支持Windows,Linux和macOS。

    XAMPP包含在本地构建网页所需的一切。 它没有麻烦,可让您立即开始PHP开发。

    在本教程中,我将使用XAMPP软件来演示PHP示例。 因此,如果您想继续并运行PHP示例,请下载并安装它。 如果在安装过程中遇到任何问题,请随时使用本文结尾的提要发布查询。

    在本地安装XAMPP软件并使其成功运行后,您应该能够在浏览器中的http:// localhost上看到默认的XAMPP页面。

    在XAMPP中运行您的PHP文件

    安装XAMPP之后,您需要知道的第一件事是放置PHP文件的位置。 安装XAMPP软件时,它将创建htdocs目录,该目录是默认Web服务器域localhost的文档根。 因此,如果您访问http://localhost/example.php ,则服务器将尝试在htdocs目录下找到example.php文件。

    取决于您使用的操作系统, htdocs目录的位置会有所不同。 对于Windows,它将位于C:\ xampp \ htdocs 。 另一方面,对于Linux用户,它将位于/ opt / lampp / htdocs 。 找到htdocs目录的位置后,就可以立即开始创建PHP文件并在浏览器中运行它们!

    phpinfo()是一个非常有用的函数,可为您提供有关服务器和PHP设置的信息。 让我们在htdocs目录下创建一个phpinfo.php文件,其内容如下:

    <?php
    phpinfo();
    ?>

    现在,继续在浏览器中的http://localhost/phpinfo.php上运行它,您应该看到如下输出:

    PHPINFO输出

    如果您还没有意识到,请告诉我您刚刚在Web服务器上运行了第一个PHP文件! 它虽然很小,但却是学习PHP网站开发的重要一步。

    实际上,您还可以在htdocs目录下创建新目录来组织PHP脚本。 例如,您可以在htdocs下创建datetime目录,以获取与日期和时间相关的示例。 因此,如果您在htdocs / datetime目录下创建了today_date.php文件,则可以在浏览器中访问http://localhost/datetime/today_date.php来访问它。

    因此,您可以通过Web服务器创建并运行PHP脚本。 实际上,这就是您日常PHP开发中大部分时间要使用的方式。

    在下一节中,我们将看到如何使用命令行运行PHP脚本。

    如何使用命令行运行PHP文件

    在命令行上运行PHP脚本时,应注意PHP可执行文件在PHP安装中的位置。

    对于Windows用户,您应该能够在安装PHP的目录下找到php.exe文件。 另一方面,如果您是Linux或macOS用户,则应该可以在/ usr / bin / php上找到它。 实际上,在Linux或macOS上,您可以仅从任何目录使用php快捷方式。 一旦知道了PHP可执行文件的位置,您只需提供要从命令行界面执行的PHP文件的名称。

    但是,作为Windows用户,您需要输入PHP可执行文件的完整路径才能运行PHP脚本。 通常,PHP可执行文件位于C:\ php7 \ php.exe ,因此您可以使用它来执行PHP文件,如以下命令所示。

    C:\php7\php.exe my_example.php

    对于Linux,您无需键入PHP可执行文件的完整路径。

    php my_example.php

    如前所述,命令行PHP脚本通常用于常规的应用程序特定任务,例如:

    • 清除或生成应用程序缓存
    • 导出/导入系统实体
    • 批量处理
    • 其他通用任务

    通常,这些类型的任务需要花费很长时间才能执行,并且不适合在Web环境中运行,因为它们会导致超时错误。

    重要的是要注意,当您在命令行上运行PHP脚本时,您将无法访问任何$_SERVER变量,因为这些变量仅在您在Web服务器上运行PHP时才会启动。 因此,如果计划使用命令行运行脚本,则不建议依赖这些变量。

    作为PHP程序员,了解命令行PHP接口的工作方式非常重要。 实际上,如今,许多PHP软件和框架都带有内置的命令行工具,使您可以从CLI本身执行各种实用程序任务。

    结论

    今天,我们讨论了如何在系统上运行PHP文件。 具体来说,我们详细介绍了如何在浏览器中与Web服务器一起执行PHP脚本,以及如何通过命令行界面运行它。

    作为一个初学者,首先要了解基本概念很重要。 我希望本文能帮助您进一步发展PHP。 请使用以下供稿,随时询问您是否有任何疑问。

    探索在CodeCanyon上创建的数千个最好,最有用的PHP脚本 。 通过一次性的低成本付款,您可以购买这些高质量的WordPress主题之一,并为您和您的访客改善网站体验。

    翻译自: https://code.tutsplus.com/tutorials/how-to-run-a-php-file--cms-34769

    展开全文
  • PHP下载文件(laravel)

    千次阅读 2017-11-02 17:03:59
    public function downloadLaravel() //有laravel中有现成的下载方法 { return response() ->download(realpath(base_path('public')).'/2.jpg', 'new.jpg'); } realpath:该函数删除所有符号连接(比如 '/./
     public function downloadLaravel()    //有laravel中有现成的下载方法
        {
            return response()
                ->download(realpath(base_path('public')).'/2.jpg', 'new.jpg');
        }
    	realpath:该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。
    	base_path():函数返回项目根目录的绝对路径
    		    download():第一个参数是下载的文件的位置,第二个是文件被下载后赋予的新名字;
    
        public function download(){     //以原生PHP下载
            $filename=public_path().'/../2.jpg';   //public_path返回public的绝对路径(因为是在框架中写的所以用了laravel中的函数;)
            $file_size=filesize($filename);		//filesize获取文件大小	
            header('Content-Type:image/gif'); 		//指定下载文件类型
            header('Content-Disposition: attachment; filename="2.jpg"');  //指定下载文件的描述
            header('Content-Length:'.$file_size);		//指定下载文件大小	
            $fp=fopen($filename,"r");			//用只读方式打开;
            $buffer=1024;					//规定一个文件切割的大小
            $file_count=0;
    //向浏览器返回数据
            while(!feof($fp) && $file_count<$file_size){   //feof() 函数检测是否已到达文件末尾 。
                $file_con=fread($fp,$buffer);              //fread() 函数读取文件(可安全用于二进制文件)。
                $file_count+=$buffer;			
                echo $file_con;
            }
            fclose($fp);					//关闭文件
        }
    为了防止文件过大,占用运行内存,我们采用把文件切割到安全大小上传。
    这只是下载的简单操作,很多时候项目中的下载为了防止被入侵,我们不可能直接拿文件的路径展示出来,
    来进行下载。这样别人可以直接将你文件中的重要文件直接荡下来。
    所以...有两个措施【1:可以将允许下载的文件信息放入数据库中,下载的时候通过Id来获取他的信息来下载。】
    		 【2:给一个文件夹,将所以允许下载的文件都放在里面,当有人想下载这个文件夹以外的文件时不允许下载。】
    
    
    当下载的时候发现报
    
    
    这样的BUG时,要将PHP的扩展php_fileinfo打开,就是将前面的 ‘;’去掉。
    
    
    展开全文
  • Chrome 打开任何界面都正常,但是都会自动下载 index.php文件,经过电脑杀毒,浏览器重置都没有解决问题,后来发现是插件问题,插件名字叫:Free Video Downloader2.9,果断卸载掉,大家千万不要下载这种流氓插件了...
  • PHP实现文件下载

    2007-01-26 23:20:00
    如果只是普通的文件下载,完全没有必要用到php,用个就可以,但是有的时候为让文件保密,只能给一部分人下载,显然不能够把链节告诉别人,如果是这样哪就起不到保密的效果。下面这个函数就是一个用php写的文件下载的...
  • PHP实现文件下载

    千次阅读 2005-01-01 17:20:00
    如果只是普通的文件下载,完全没有必要用到php,用个就可以,但是有的时候为让文件保密,只能给一部分人下载,显然不能够把链节告诉别人,如果是这样哪就起不到保密的效果。下面这个函数就是一个用php写的文件下载的...
  • PHP打包器应用场景:做好网站程序后,发布给用户看,但是不想泄露源码,可以选择“封装源码生成EXE文件”,建议封装前先用zend等加密代码,可以起到双重保险,对方在破解软件的同时还需要破解网站源码。对破解者的...
  • $fileName = '1.txt'; $url = "接口地址"; $ret = self::fileCurl($url,'get',['fileName'=>... //将文件绑定到流 fwrite($fp,$ret); //写入文件 public function fileCurl($url,$method,$data) { $ch = curl_init
  • 网站不能下载.exe文件 搭建网站IIS目录权限设置说明 (2012-09-06 14:41:07) 转载▼ 标签: 网站不能下载.exe文件 搭建网站iis目录权限 杂谈 分类: 服务器 我遇见的问题是: ...
  • 提取文件网站中网址的PHP代码
  • 比如说我 /xx.php 这个文件我不想让别人直接从浏览器输入地址访问 但是如果从任何网站连接 /xx.php 过来就可以访问 本机建立连接也无法访问跳转到另外的地址 1.在 xx.php 文件头部写上以下代码就可以了 $fromurl= /;...
  • npm方式下载一个包文件

    千次阅读 2019-08-27 20:07:34
    你可以上传自己的模块或者插件文件下载别人的模块插件文件。 上传: 要按规范,进行一系列的操作,比如package.json设置等,主要是那些插件作者使用。此处不详展开~ 下载: 下载官网包文件,如jquery等 如何使用?...
  • 我在ubuntu虚拟机里面搭建了lnmp环境,编写php文件,函数中给returnVal赋值,然后echo json_encode($returnVal),360浏览器中输入url访问,结果提示是否下载json文件,用chrome浏览器和postman都正常,postman正常是...
  • PHP文件加密解

    千次阅读 2015-10-25 12:58:09
    /**   * 公钥加密  ... * @param string 证书文件(.crt)   * @return string 密文(base64编码)   */ function publickey_encodeing($sourcestr, $fileName) {  $key_content = file_get
  • 本文实例讲述了python django下载大的csv文件实现方法。分享给大家供大家参考,具体如下: 接手他人项目,第一个要优化的点是导出csv的功能,而且要支持比较多的数据导出,以前用php实现过,直接写入php://output就...
  • php禁止直接从浏览器输入地址访问.php文件的方法 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-11-04 我要评论 这篇文章主要介绍了php禁止直接从浏览器输入地址访问.php文件的方法,实例总结了...
  • 前提:我们网站所有文件全部使用的是UTF-8 NO BOM的编码方式 1、找测试重现。360浏览器下载的呵呵,果然文件名是乱码。再请测试在ie浏览器下测试。IE9,8,7也全部是乱码。查看编码就是UTF-8.所名不是编码问题造成...
  • 一款可以复制别人开区网站的软件,输入地址即可下载整个网站源码程序,php asp 之类的动态程序无法下载。只能下载html htm 的静态页面文件! Teleport Ultra 所能做的,不仅仅是离线浏览某个网页,它可以从 ...
  • 文件PHP版视频解析

    2021-04-06 07:09:32
    1、它是一个单独的PHP文件,你可以给它重命名,但不要为中文名 2、初始化运行会自动生成一个config.json的文件作为储存使用,空间不可写可在本地调试后上传该文件。 3、下载后先打开文件查看下源码,顶部有注释。 4...
  • JetBrains phpstorm8的安装和创建php文件

    千次阅读 2014-11-26 09:13:27
    前两天刚接触php,便也开始喜欢~于是就开始使用各种php的windows7开发环境,什么notepad++、sublime等等,但是由于身边没有一个能帮助自己安装环境的小伙伴,自己又太笨,没办法理解网上的安装设置,导致一直无法...
  • php文件上传

    2009-04-10 10:53:54
    1. 文件的所有权益归上传用户所有 2. 未经权益所有人同意不得将文件中的...5. 本站不保证本站提供的下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
  • ftp 自动下载文件并解压

    千次阅读 2017-01-16 10:55:48
    前几天为了工作想将Ftp文件自动下载处理,这样上班后就可以直接应用数据了,开始想看好多办法,比如PHP VB 等,但是最后都觉得不太好用,采用了系统自带的DOS 系命令,不过这个DOS 真是不太好用啊,用了三天,就写了...
  • /php168/ 此目录,及目录下的每一个文件包括每一个子目录(网站核心配置文件都在里边) /cache/ 此目录与目录下的每一个文件(缓存目录) /html/ 此目录,如果安装前,里边有文件,请删除之(生成的静态网页存放目录) /...
  • ThinkPHP下载、部署,Helloworld,消除难看的index.php》(点击打开链接)已经实现了,只是当时没有意识到其实对于网站下的所有php,都是可以将原本是http://xxx.com/1.php搞成http://xxx.com/1.html,这样一来便于...
  • php从服务器下载图片到本地

    千次阅读 2018-09-28 15:43:03
    *功能:php完美实现下载远程图片保存到本地 ,当前仅支持单个图片下载 *参数:文件url,保存文件目录,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ function getImage($url,$...
  • 这蛋疼的的一天。。。我不喜欢配置。。。 ======================================================= 1.首先准备工作搞好 ...下载PHP环境(PHP 5.04):http://download.csdn.net/detail/xihuanqiqi/465779

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,446
精华内容 11,378
关键字:

下载别人网站php文件