把二進(jìn)制字符串先轉(zhuǎn)為byte[] ,接收后再轉(zhuǎn)回來 byte[] msg = Encoding.Default.GetBytes(你的二進(jìn)制字符串); socket發(fā)送 socket接收byte[] string 你的二進(jìn)制字符串
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供東安網(wǎng)站建設(shè)、東安做網(wǎng)站、東安網(wǎng)站設(shè)計(jì)、東安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、東安企業(yè)網(wǎng)站模板建站服務(wù),十多年東安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
php接收二進(jìn)制文件怎么替換里面的內(nèi)容
php接收二進(jìn)制文件如下:
?php
header('Content-type: text/html; charset=utf-8');
error_reporting(0);
$filename = $_GET["filename"];
$filesize = $_GET["filesize"];
$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];//$_POST["data"];//
if(empty($xmlstr)) $xmlstr = file_get_contents('php://input');
$raw = $xmlstr;//得到post過來的二進(jìn)制原始數(shù)據(jù)
$file = fopen("./upload/".$filename,"w");//打開文件準(zhǔn)備寫入
fwrite($file,$raw);//寫入
fclose($file);//關(guān)閉
?
接收的二進(jìn)制文件中非標(biāo)準(zhǔn)字符(0x7F)的字節(jié)被替換為三個(gè)字節(jié),比如E2替換為EF 9F A2
現(xiàn)在我想在Php接收到文件之后還原回去,把EF 9F A2替換為E2,請(qǐng)問這個(gè)怎么實(shí)現(xiàn)?
非常感謝!
PHP 二進(jìn)制
------解決方案--------------------
他的數(shù)據(jù)轉(zhuǎn)換規(guī)則是這樣的:
文件頭不變,文件頭多長(zhǎng)不清楚,圖上到0050h都一樣的
=7F的字節(jié),因?yàn)閡tf-8也一樣,可以認(rèn)為也轉(zhuǎn)換了utf-8
=80的字節(jié),高位加上F7,再轉(zhuǎn)utf-8,例如E2就變成F7E2然后轉(zhuǎn)utf-8成為EF 9F A2
至少他圖中E2/FB/91/B2/81...都滿足這個(gè)規(guī)則
------解決方案--------------------
本帖最后由 xuzuning 于 2013-05-02 15:35:02 編輯
用正則可這樣寫
假定數(shù)據(jù)已把存在變量 $s 中,則
$s = preg_replace_callback('/[\xef]../', 'foo', $s);
function foo($r) {
$c = (ord($r[0]{1}) 0x03) 6;
$c += (ord($r[0]{2}) 0x3f);
return chr($c);
}
一般是直接提供資源的鏈接,他們使用即可。
二進(jìn)制數(shù)據(jù)可以通過base64處理后傳過去。
瀏覽器里可以通過?img?src="data:image/jpeg;base64,XXX"直接顯示圖片,
XXX表示圖片內(nèi)容base64_encode后的結(jié)果
* 使用方法:
* $post_string = "app=requestversion=beta";
* request_by_other('url',$post_string);
*/
function request_by_other($remote_server, $post_string)
{
$context = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type: application/x-www-form-urlencoded' .
'\r\n'.'User-Agent : Jimmy\'s POST Example beta' .
'\r\n'.'Content-length:' . strlen($post_string) + 8,
'content' = 'mypost=' . $post_string)
);
$stream_context = stream_context_create($context);
比如此類名字叫做imageUpload.class.php
那么首先是要引入該類文件用include("imageUpload.class.php");
第二步是實(shí)例化該類$inputimage = new imageUpload("input.jpg","./");
第三部是調(diào)用二進(jìn)制轉(zhuǎn)換成圖片的方法了,$inputimage-stream2Image();
實(shí)例化該類需要傳兩個(gè)參數(shù),第一個(gè)是需要保存的圖片名字,第二個(gè)是圖片保存路徑地址。
當(dāng)前名稱:php發(fā)送接收二進(jìn)制數(shù)據(jù),php 二進(jìn)制
網(wǎng)頁(yè)URL:http://jinyejixie.com/article46/hsijeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、ChatGPT、軟件開發(fā)、電子商務(wù)、定制開發(fā)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)