相关疑难解决方法(0)

file_get_contents => PHP致命错误:允许的内存耗尽

我在处理大文件时没有经验,所以我不知道该怎么做.我试图使用file_get_contents读取几个大文件; 任务是使用preg_replace()清理和消除它们.

我的代码在小文件上运行良好; 但是,大文件(40 MB)会触发内存耗尽错误:

PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 41390283 bytes)
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用fread(),但我不确定它是否也能正常工作.这个问题有解决方法吗?

感谢您的输入.

这是我的代码:

<?php
error_reporting(E_ALL);

##get find() results and remove DOS carriage returns.
##The error is thrown on the next line for large files!
$myData = file_get_contents("tmp11");
$newData = str_replace("^M", "", $myData);

##cleanup Model-Manufacturer field.
$pattern = '/(Model-Manufacturer:)(\n)(\w+)/i';
$replacement = '$1$3';
$newData = preg_replace($pattern, $replacement, $newData);

##cleanup Test_Version field and create comma delimited layout. …
Run Code Online (Sandbox Code Playgroud)

php

24
推荐指数
2
解决办法
5万
查看次数

将文件作为附件发送到浏览器

如果意图文件驻留在第三方服务器上(没有事先下载或流式传输),如何将文件作为附件发送到浏览器?

php redirect header http

9
推荐指数
3
解决办法
2万
查看次数

使用PHPExcel强制下载excel文件

我正在使用以下标头输出通过PHPExcel生成的Excel工作表:

// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); 
Run Code Online (Sandbox Code Playgroud)

而是将乱码文本发送到浏览器:

PK??????&DG?D?X????????[Content_Types].xml??MN?0???"?%nY ??vAa  ?(0?????g?w{&i?@?nbE?{??y??d?l
    m?????X?(???)???F??;@1_?????c)j?x/%??E??y?
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我使用正确的标题来强制下载excel文件吗?非常感谢.

编辑1:

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output'); 
Run Code Online (Sandbox Code Playgroud)

还是行不通

php http http-headers phpexcel

4
推荐指数
2
解决办法
2万
查看次数

如何用php查看受保护文件夹中的图像?

我的网站上有一个包含*.jpg文件的密码保护目录(带.htaccess).我不希望任何人都可以直接访问这些.jpgs - 但我想允许php脚本显示*.jpg文件.有可能吗?


对于那些想知道为什么我想要这个的人:我有一个注册表单,用户可以上传图片,在完成注册之前,他可以检查是否上传了正确的图片.目前,我将上传的图片保存在一个临时目录中,如果他完成了,我将图片移动到受密码保护的目录.但是,我不喜欢在每次注册时,图片公开的时间很短(例如通过搜索引擎).更糟糕的是,当有人上传图片但没有完成注册时,图片将永远保留在临时目录中,除非我以某种方式删除.但是如果我在特定时间内设置了一个cron-job来删除临时目录中的所有图像,那么如果他在不利的时刻注册,那么某些图片将被删除.

php

3
推荐指数
1
解决办法
3586
查看次数

用于下载文件php的标题

可能重复:
php,文件下载

我有不在Web根目录中的文件,我需要提供下载.所以我有一个脚本,使用下面的代码来下载所请求的文件.问题是,我下载的每个文件都已损坏?文件没问题,因为如果我使用FTP下载,它们会打开.这是传递的标题:

header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
        header("Cache-Control: public"); // needed for i.e.
        header("Content-Type: " . $download[0]['mime']);
        header("Content-Disposition: attachment; filename=" .$download_file);
        header("Content-Transfer-Encoding: Binary");
        header("Content-Length:".filesize($attachment_location));

        readfile($attachment_location);
Run Code Online (Sandbox Code Playgroud)

php header download

2
推荐指数
1
解决办法
3万
查看次数

标签 统计

php ×5

header ×2

http ×2

download ×1

http-headers ×1

phpexcel ×1

redirect ×1