草庐IT

PHP 使用 cURL 下载一个巨大的电影文件 (500 MB)

好的,我有一个问题希望你能帮我解决。我正在运行一个存储非常大的视频文件的服务器,有些文件高达650MB。我需要一个用户能够请求这个页面并将文件下载到他们的机器上。我已经尝试了所有方法,但是一个普通的readfile()请求在退出前挂起大约90秒,并给我一个“没有收到数据错误324代码”,我从几个网站找到的分块读取文件脚本甚至没有开始下载,通过PHP解决方案的FTP在我尝试获取文件时只给我错误,而我发现的唯一cURL解决方案只是在我的服务器上创建另一个文件。那不是我需要的。明确我需要用户能够下载文件到他们的计算机和不是服务器。我不知道这段代码是垃圾还是只需要一两次调整,但我们非常感谢您的

php - 在 mb_encode_numericentity() 中更好地解释 $convmap

phpmanual中方法mb_encode_numericentity对此参数convmap的描述对我来说很模糊。有人会帮助对此做出更好的解释,或者如果对我来说足够的话,也许会“简化它”?这个参数中使用的数组元素是什么意思?联机帮助页中的示例1有这很有帮助,但后来我看到了很多用法示例,例如array(0x80,0xffff,0,0xffff);这让我很失望。这是否意味着偏移量将是0并且掩码将是0xffff,如果是这样,偏移量是否表示字符串中要开始转换的字符数,以及mask在这种情况下是什么意思? 最佳答案 往下看rabbithole

php - 是否建议通过 php 上传非常大的文件(例如 500mb)?

我创建了一个简单的网络界面,允许不同的用户上传文件。我将上传限制设置为100mb,但现在发现客户端偶尔想要上传500mb+的文件。我知道如何更改php配置以更改上传限制,但我想知道通过php上传这种大小的文件是否有任何严重的缺点?显然ftp会更好,但如果可能的话,我宁愿没有两种不同的上传文件的方法。谢谢 最佳答案 首先,FTP从来都不是首选。对任何事。我假设您的意思是通过HTTP传输文件。虽然不像FTP那样糟糕,但如果您能找到另一个解决问题的方法,那可不是个好主意。HTTP(以及组件程序)针对在Internet上传输相对较小的文件进

php - file_get_contents 或 fopen 用于读取几 MB 的 php ://input?

这似乎是一个重复的问题,但事实并非如此:我通过php:/input(1-500mb)收到了数兆字节的数据,我必须将这些数据保存在一个文件中。更性能明智(服务器负载,速度)使用:file_put_contents($filename,file_get_contents('php://input'))或$input=fopen("php://input","r");$temp=tmpfile();$realSize=stream_copy_to_stream($input,$temp);fclose($input);$target=fopen($filename,"w");fseek($t

php - 为什么有人想使用 strlen 而不是 mb_strlen

有一些遗留代码,我应该将其从iso-8859-2转换为UTF-8。其中一个问题是strlen函数的广泛使用。我首先想到的是将所有出现的strlen替换为mb_strlen。但是,我的一位同事说这是一个错误。我知道这两个函数之间的区别-如果字符串中有重音字符,strlen将返回它实际占用的字节数,而mb_strlen将返回字符。现在,一位同事说,也许,只是也许某处存在返回值需要与字符串中的字节数有关的情况,但他无法给我任何此类情况的示例。整个代码中大约有900次strlen出现,分析每一次出现都需要几天时间。问题是-当有人需要字节数而不是字符串中的字符数时,可能出现的情况是什么?

php - ereg() 到 preg_match() 怎么样?

这个问题在这里已经有了答案:HowcanIconverteregexpressionstopreginPHP?(4个答案)关闭3年前。我正在使用一些简单的正则表达式。很简单:"user/""user/[A-z0-9_-]"这些都适用于ereg,但不适用于preg。如何转换?谢谢

php - PHP ereg_replace 中的欧元符号

我想在此正则表达式中允许使用欧元符号€,但它不会通过$val=ereg_replace($regex,"[^a-zA-Z0-9[:space:][:blank:]€+-]+",$_REQUEST[$var]); 最佳答案 你有安装mbstring吗?如果是这样,请尝试使用函数mb_ereg_replace().它将支持这个字符(甚至在UTF-8中)。编辑:还要检查mbregex是否打开。有些主机打开mbstring但禁用mbregex(我不知道为什么)。 关于php-PHPereg_re

php - 如何在 phpmyadmin 中上传大型 .sql mb 文件

如何将140mb文件上传到我的localserver上的phpmyadmin我正在使用WAMP服务器。当我导入文件时,我的浏览器挂起并且什么也不会发生,我还尝试增加我的php.ini文件中的时间限制。 最佳答案 您尝试过压缩吗?如果它是您要导入的表或数据库,则在转储文件时会有一个压缩选项。您必须选择:自定义-显示所有可能的选项并选择一种可以节省大量时间和空间的压缩方法。 关于php-如何在phpmyadmin中上传大型.sqlmb文件,我们在StackOverflow上找到一个类似的问题

php - phps mb_ereg 函数是否可以安全使用(由于 ereg 被弃用)?

我只是想调整我的代码以兼容php5.3(6.0)。所以我想用相应的preg函数替换所有对ereg函数的调用。但后来我看到mb_ereg函数没有被标记为已弃用。所以我只是想知道依赖它们是否省钱?是否知道它们也将很快被宣布弃用,或者它甚至是文档中的缺陷? 最佳答案 我不会依赖他们。preg函数更快、更高效、更强大并且天真地支持UTF8。我建议使用preg函数来满足您的所有正则表达式需求。但要直接回答您的问题,mb_ereg似乎并没有被弃用... 关于php-phpsmb_ereg函数是否可以

php - 在 PHP 中生成高达 100MB 的随机字符串以进行测试的有效方法?

出于测试目的,我需要这样的函数:/***@paramint$sizeInBytes**@returnsstringwithrandomdata*/functionrandomData($sizeInBytes){...}有什么有效实现的想法吗?需要速度而不是真正的随机性(更像是一种“loremipsum”)。我最简单的想法是在文件系统中使用真正的大文件并通过流获取所需的大小。但这至少需要一个100MB的文件。有没有更好的办法? 最佳答案 如果您有可用的内存,只创建一个很长的字符串怎么样?这不应该花那么长时间:)$x=str_repe