当前位置:

苏州PHP培训学校推荐

苏州培训新闻内容

[ 2017-07-29 11:56:20 ] 点击:1282 苏州PHP培训

技术分享:EF BB BF导致php http传输2进制流文件损坏(图片、视频、文档等)


 
一、现象
该问题目前在php中发现,在使用php向浏览器输出2进制文件(比如图片)时,服务端源文件正常,输出到客户端后图片变成:无法打开,已损坏。
此处是php输出2进制流,不是直接用http伺服器输出图片!
 
#原图
 
 
#经php输出后的结果
 Windows照片查看器无法打开此图片,因为此文件可能已经损坏、损毁或过大

 
二、分析问题
经php http输出的图片无法打开,先检查传输后的文件大小,源文件和传输文件都是占用空间4K,看不出问题。改用araxis merge把两个文件比较(切换到二进制模式比较),可以看出以下现象
 

可以看到输出文件的头部多了3个字节 EF BB BF,导致图片无法正常打开,此时使用ultraedit的2进制模式编辑此文件,删除顶部3个字节,发现图片可以正常打开。即确认在php传输2进制文件的过程中,系统默认添加了3个字节:EF BB BF。
开始从php中寻找EF BB BF的来源,怀疑是http缓冲区的问题。试用以下代码验证
<?php
ob_clean();
ob_start();
$var = fread(fopen("c:\学途网.jpg", "r"), filesize("c:\学途网.jpg");
echo $var;
 
@unlink("c:\xuetu.net.jpg");
file_put_contents("c:\xuetu.net.jpg", ob_get_contents(), FILE_APPEND);
 
ob_end_flush();
?>
结果:从缓冲区去取得的数据输出到c:\xuetu.net.jpg可以正常展示,但是http输出的图片依然存在问题。判断php本身无任何问题,应该还是http输出的时候,被系统添加了3个字节。
 
因为php语言的特殊性,语法是由 <?php 为开头的脚本语言,所有在标记范围外的字符,会被php用作默认输出。在linux中使用 header xuetu.net.php ,可以看到
#header xuetu.net.php
?<?PHP
....
....
字样,说明文件开头多了一个?字符。
回到windows中,用editplus或者ultraedit直接打开,一切正常
 
再切换到十六进制模式查看,发现多了EF BB BF,也就是输出2进制文件中被默认添加的3个字节。
 
 

三、解决方案
该3个字节是windows对于utf8文件格式的隐藏标识,即utf-8 + bom。可以使用windows下的各种文本编辑工具,打开php源文件,另存为....,在选项中,把utf-8 + bom 改为 utf8即可。
 
所有关联include过的文件,全部都要改,否则每一个文件的bom都会在2进制输出时,分别添加一次3字节。
 
把文件改成ansi编码也是一种解决方案,因为篇幅原因,对为什么不用 ansi编码解决,暂不做更多介绍。
 
 
四、php是世界上最好的语言
 
 
以上内容为学途网 xuetu.net原创,禁止转载。

匿名评论

所有评论

[2018-04-08] 匿名 评论: 这个白痴当真以为白鹭会回答他,哪里知道白鹭根本不做反应,闷声跟莫格里还有歌莉娅压了上去,三个圣骑士的防御能力,不是单独一个人可以比拟的,三人之间又能够互相配合,一起压制上来,给黑格尔的压力甚至超越了妮娜本身。 新葡萄京娱乐场242166 http://www.xpj2778.top/

[2018-04-08] 匿名 评论: 就在这时,沙哑的声音传入林枫耳中,只见老黑蚁王站了出来,他一直观察着林枫,然而到了现在却变成了林枫教训黑蚁族,让他脸红,也意识到了黑蚁族真正缺憾的是什么。 澳门新葡京a99.com http://www.xpj55669.top/

[2018-04-07] 匿名 评论: ВСЕГО ОДНА КАПСУЛА В ДЕНЬ и ты будешь заниматься сексом ежедневно по 2-3 часа! В любом возрасте и без побочных эффектов ОСТАЛОСЬ: 14 УПАКОВОК Гарантирует мощную, устойчивую эрекцию в любом возрасте Продлевает половой акт до 2-х часов В 3 раза увеличивает количество спермы при эякуляции Продлевает твой оргазм на 15-20 секунд Сайт: https://eroctive2.blogspot.ru/

[2018-03-31] 匿名 评论: buy cheap generic viagra co uk kamagra oral jelly 100mg kamagra 100mg tablets reviews kamagra4uk review kamagra 100mg oral jelly suppliers indianapolis indiana kamagra 100 dosage http://kamagradxt.com/ kamagra oral jelly side effects

[2018-03-31] 匿名 评论: kamagra chew tablets - 100 mg kamagradxt.com kamagra store uk kamagra 100mg oral jelly suppliers indiana buy kamagra oral jelly online in india http://kamagradxt.com/ kamagra oral jelly 100mg factory discount prices

[2018-03-20] 匿名 评论: Romantic Piano by Andrew_Studio | AudioJungle http://workle.website/4d https://audiojungle.net/item/cinematic-trailer/20815683?ref=MomentumOfMelody https://audiojungle.net/user/momentumofmelody/portfolio?ref=MomentumOfMelody https://audiojungle.net/user/ie_sound/portfolio?ref=IE_Sound https://audiojungle.net/user/elijah_studio/portfolio?ref=Elijah_Studio https://audiojungle.net/user/commercial_music/portfolio?ref=Commercial_Music

[2018-03-19] 匿名 评论: Сегодня создано новое уникальное средство Eroctive для потенции у мужчин, которое действует мгновенно и без риска для здоровья http://eroctive.seobest.website

[2018-03-14] 匿名 评论: Кредит наличными в ОТП Банке: http://workle.website/71

[2018-03-14] 匿名 评论: Clean, Optimize, Speed Up and Secure PC - Freeware Download - IObit http://workle.website/2u

[2018-03-14] 匿名 评论: Romantic Piano by Andrew_Studio | AudioJungle http://workle.website/4d https://audiojungle.net/item/cinematic-trailer/20815683?ref=MomentumOfMelody https://audiojungle.net/user/momentumofmelody/portfolio?ref=MomentumOfMelody https://audiojungle.net/user/ie_sound/portfolio?ref=IE_Sound https://audiojungle.net/user/elijah_studio/portfolio?ref=Elijah_Studio https://audiojungle.net/user/commercial_music/portfolio?ref=Commercial_Music

[2018-03-13] 匿名 评论: Opteck http://workle.website/3h

[2018-01-22] 匿名 评论: Advertising Toy Forex Bot Go to Site: --> http://t.co/yKfCpZrwbG http://imp-mebeli.ru

[2018-01-19] 匿名 评论: nadex binary options robot testimonials examples magazine 5 Minute Binary Options Strategy Go to Site: --> http://binary.socaf.info - futures trading system

[2017-12-01] 匿名 评论: http://iphonex.bxox.info - iPhone X!

[2017-11-30] 匿名 评论: Creme-Basis Wachs HEALTHY Propolis wird zur Behandlung von zabolivany wie Hamorrhoiden, Psoriasis, Prostata-, Krampfadern, ... Offiziellen Website: http://zdorov.bxox.info

[2017-11-30] 匿名 评论: Creme-Basis Wachs HEALTHY Propolis wird zur Behandlung von zabolivany wie Hamorrhoiden, Psoriasis, Prostata-, Krampfadern, ... Offiziellen Website: http://zdorov.bxox.info

[2017-11-30] 匿名 评论: Creme-Basis Wachs HEALTHY Propolis wird zur Behandlung von zabolivany wie Hamorrhoiden, Psoriasis, Prostata-, Krampfadern, ... Offiziellen Website: http://zdorov.bxox.info

[2017-11-16] 匿名 评论: Пишите на почту: bernsontraff@gmail.com Все предложения по услуге Кредит без комиссии в банках Шенталы на выгодных условиях http://kredit.bestsky.info/

[2017-09-10] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangystin.bxox.info Сок Замброза,Напиток Ксанго,Сироп Мангустина для похудения Природные антиоксиданты: применение, отзывы врачей, www.moykrest.ru/sirop-mangustin http://vk.com/id370235746

[2017-09-09] 匿名 评论: гостиная Роза http://buycookies.info/ ----------

[2017-09-08] 匿名 评论: гостиная Роза http://buycookies.info/ ----------

[2017-09-07] 匿名 评论: гостиная Роза http://pronews24.ru/ ----------

[2017-09-07] 匿名 评论: гостиная Роза http://buycookies.info/ ----------

[2017-08-22] 匿名 评论: Perfect instrumental background music for romantic and sentimental films, presenting your business, new products or your company in general with an optimistic and motivational touch. Visit site: Music for romantic

[2017-08-21] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangjoo77.mangoosteen.com

[2017-08-21] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangjoo77.mangoosteen.com

[2017-08-21] 匿名 评论: Perfect instrumental background music for romantic and sentimental films, presenting your business, new products or your company in general with an optimistic and motivational touch. Visit site: Music for romantic

[2017-08-20] 匿名 评论: гостиная Роза http://bigwork.info/ ----------

[2017-08-20] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangjoo77.mangoosteen.com

[2017-08-20] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangjoo77.mangoosteen.com

[2017-08-19] 匿名 评论: Приобрести сироп Mangoosteen можно на веб-сайте http://mangjoo77.mangoosteen.com

[2017-08-07] 匿名 评论: Компания Суфле производит женские и мужские сумки только из натуральной кожи. В нашей коллекции Вы увидите разнообразные модели для тех, ... http://bags.moykrest.ru

[2017-08-06] 匿名 评论: Элитные итальянские кожаные сумки TONY PEROTTI: модно, стильно, престижно .... Именно поэтому сумки из натуральной кожи TonyPerotti являются ... http://bags.moykrest.ru

学途最新培训新闻