本文實例講述了php將圖片文件轉(zhuǎn)換成二進制輸出的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、文成網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就這么簡單4行代碼,就將圖片以二進制流的形式輸出到客戶端了,和打開一張圖片沒有任何區(qū)別。
這里需要注意的是,發(fā)送的header要根據(jù)具體情況而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同類型的圖片輸出不同的頭部。
十六進制轉(zhuǎn)為二進制有兩種理解方法,第一是十六進制字符串轉(zhuǎn)二進制字符串,第二是十六進制數(shù)轉(zhuǎn)二進制數(shù),下面分別介紹2種轉(zhuǎn)換方法:
1.hex2bin函數(shù)可以將十六進制字符串轉(zhuǎn)換為二進制字符串,詳細用法如下:
hex2bin — 轉(zhuǎn)換十六進制字符串為二進制字符串
string?hex2bin(string?$data)
轉(zhuǎn)換十六進制字符串為二進制字符串。
參數(shù):
data:十六進制表示的數(shù)據(jù)
返回值:
返回給定數(shù)據(jù)的二進制表示 ?或者在失敗時返回 FALSE。
異常:
如果輸入的十六進制字符串是奇數(shù)長數(shù)或者無效的十六進制字符串將會拋出E_WARNING 級別的錯誤。
示例:
$hex?=?hex2bin("6578616d706c65206865782064617461");
echo?$hex;//example?hex?data(其中16進制代表的是ascii碼)
2.base_convert是真正意義上的進制轉(zhuǎn)換函數(shù)
base_convert — 在任意進制之間轉(zhuǎn)換數(shù)字
string?base_convert(?string?$number,?int?$frombase,?int?$tobase)
返回一字符串,包含 number以 tobase 進制的表示。number 本身的進制由frombase指定。frombase 和 tobase 都只能在2 和 36 之間(包括 2 和 36)。高于十進制的數(shù)字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。
參數(shù):
number:要轉(zhuǎn)換的數(shù)字
frombase:原始進制
tobase:轉(zhuǎn)換后的進制
示例:
$hexadecimal?=?'A37334';
echo?base_convert($hexadecimal,?16,?2);//101000110111001100110100
PHP decbin函數(shù)的作用是把十進制轉(zhuǎn)換為二進制。
用法:
參數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 描述
dec_number? ? ? ? ? ? ? ? ? ? ? 必需。規(guī)定要轉(zhuǎn)換的十進制數(shù)。?
示例:
?php
echo?decbin("3");
echo?decbin("1");
echo?decbin("1587");
echo?decbin("7");
?
輸出:
11
1
11000110011
111