php二進制輸出
⑴ php將圖片文件轉換成二進制輸出的方法
本文實例講述了php將圖片文件轉換成二進制輸出的方法。分享給大家供大家參考。具體實現方法如下:
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就這么簡單4行代碼,就將圖片以二進制流的形式輸出到客戶端了,和打開一張圖片沒有任何區別。
這里需要注意的是,發送的header要根據具體情況而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同類型的圖片輸出不同的頭部。
⑵ 求解 使用php將1000位的十進制大數轉成二進制
下面的代碼測試通過的,我只用幾10位進行測試,理論上成千上萬位結果也是正確的,供你參考,演算法比較笨蛋(完全模仿人工的除2取余):
<?php
//超大整數(10進制)轉換為二進制數
$n='845';
//$n='15';//1111
//$n='257';//100000001
$r='';//結果
while($n){
//$n整除2,商$m、余數$k
$k=0;
$m='';
do{
$k=$k*10+substr($n,0,1);
if($m!=''||$k>1)$m.=floor($k/2);
$k=$k%2;
$n=substr($n,1);
//$r=$k.$r;
}while($n!='');
//echo"r=$r;m=$m ";//break;
//下一輪除法
$n=$m;
$r=$k.$r;
}
echo$r;
?>
⑶ 批處理 php 二進制進位演算法
//演算法分析:我們想要實現的是數字相加,每位數的最大值為4,超過4進1位,即5進制。
//如果,數字的最後一位不等於4,那麼直接相加並輸出;如果最後一位是4,將這一位置1,並且進位1
//進位的1必須跟前面的數字進行相加,這就形成了一個遞歸,遞歸的條件是最後一位等於4
//為了跟前面的數字進行相加,我們必須先對原數字進行截取,比如數字1114,進位後應該得到1121
//代碼是這樣處理的:先把4置1,然後截取111,遞歸過程中執行111+1=112,然後返回112,並更上一次遞歸中得到的和的最後一位
//拼接成一個新的字元串:1121
⑷ PHP關於獲取二進制數據流轉換為文件的方法
<?php
$bin= bstr2bin($json);
file_put_contents('../somefold/',$bin);
function bstr2bin($input){
// Binary representation of a binary-string
if (!is_string($input)) return null; // Sanity check
// Unpack as a hexadecimal string
$value = unpack('H*', $input);
// Output binary representation
$value = str_split($value[1], 1);
$bin = '';
foreach ($value as $v){
$b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT);
$bin .= $b;
}
return $bin;
⑸ php如何將二進制字元串轉換成二進制流
當字元串處理轉換就行
/**
* 將字元串轉換成二進制
* @param type $str
* @return type
*/
function StrToBin($str){
//1.列出每個字元
$arr = preg_split('/(?<!^)(?!$)/u', $str);
//2.unpack字元
foreach($arr as &$v){
$temp = unpack('H*', $v); $v = base_convert($temp[1], 16, 2);
unset($temp);
}
return join(' ',$arr);
}
⑹ PHP中怎麼以二進制形式表示數字
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php。
⑺ php二進制流輸出文件出錯
你要的內容太多了,只能簡單的說下。fopen (PHP 3, PHP 4, PHP 5)fopen -- 打開文件或者 URL 說明resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )fopen() 將 filename 指定的名字資源綁定到一個流上。如果 filename 是 "scheme://..." 的格式,則被當成一個 URL,PHP 將搜索協議處理器(也被稱為封裝協議)來處理此模式。如果該協議尚未注冊封裝協議,PHP 將發出一條消息來幫助檢查腳本中潛在的問題並將 filename 當成一個普通的文件名繼續執行下去。 如果 PHP 認為 filename 指定的是一個本地文件,將嘗試在該文件上打開一個流。該文件必須是 PHP 可以訪問的,因此需要確認文件訪問許可權允許該訪問。如果激活了安全模式或者 open_basedir 則會應用進一步的限制。 如果 PHP 認為 filename 指定的是一個已注冊的協議,而該協議被注冊為一個網路 URL,PHP 將檢查並確認 allow_url_fopen 已被激活。如果關閉了,PHP 將發出一個警告,而 fopen 的調用則失敗。 注意: 所支持的協議列表見附錄 N。某些協議(也被稱為 wrappers)支持 context 和/或 php.ini 選項。參見相應的頁面哪些選項可以被設定(例如 php.ini 中用於 http wrapper 的 user_agent 值)。 注意: 對 context 的支持是 PHP 5.0.0 添加的。有關 context 的說明見參考 CLX, Stream Functions。注意: 自 PHP 4.3.2 起,對所有區別二進制和文本模式的平台默認模式都被設為二進制模式。如果在升級後腳本碰到問題,嘗試暫時使用 't' 標記,直到所有的腳本都照以下所說的改為更具移植性以後。 mode 參數指定了所要求到該流的訪問類型。可以是以下: 表 1. fopen() 中 mode 的可能值列表mode說明'r'只讀方式打開,將文件指針指向文件頭。 'r+'讀寫方式打開,將文件指針指向文件頭。 'w'寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。 'w+'讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。 'a'寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 'a+'讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。 'x'創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。 'x+'創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。此選項被 PHP 4.3.2 以及以後的版本所支持,僅能用於本地文件。 注意: 不同的操作系統家族具有不同的行結束習慣。當寫入一個文本文件並想插入一個新行時,需要使用符合操作系統的行結束符號。基於 Unix 的系統使用 \n 作為行結束字元,基於 Windows 的系統使用 \r\n 作為行結束字元,基於 Macintosh 的系統使用 \r 作為行結束字元。 如果寫入文件時使用了錯誤的行結束符號,則其它應用程序打開這些文件時可能會表現得很怪異。 Windows 下提供了一個文本轉換標記('t')可以透明地將 \n 轉換為 \r\n。與此對應還可以使用 'b' 來強制使用二進制模式,這樣就不會轉換數據。要使用這些標記,要麼用 'b' 或者用 't' 作為
如果幫助到您,請記得採納為滿意答案哈,謝謝!祝您生活愉快! vae.la
⑻ php將圖片轉為二進制後,我想得到二進制的數據,但是直接在瀏覽上輸出會亂碼
如果 你是想保存成圖片文件的話, 那你就把二進制數據寫到文件里, 記得文件後綴是 gif
For Example:
file_put_contents('1.gif', $a);
⑼ php中能輸出二進制數據么
可以的。
可以用一個十進制二進制的函數decbin(),生成的是一個字元串,直接輸出即可