2012-11-09 97 views
1

我想將二進制文件翻譯爲文本並返回到表單中,但在Google或其他位置找不到任何示例。將二進制文件翻譯爲文本並返回

我想讓這樣的事情 http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp

我發現這個代碼,同時搜索,但我不能得到它的工作:#

<script type="text/javascript"> 
    //<![CDATA[ 
    function txt2bin() 
    { 
     url = 'http://services.webestools.com/txt2bin/txt2bin.js?str='+encodeURIComponent($('ftxt').value); 
     var js_effets=document.createElement("script"); 
     js_effets.setAttribute("type", "text/javascript"); 
     js_effets.setAttribute("src", url); 
     document.getElementsByTagName("script")[0].parentNode.insertBefore(js_effets,document.getElementsByTagName("script")[0]); 
     $('frm').style.display='block'; 
    } 
    function bin2txt() 
    { 
     url = 'http://services.webestools.com/txt2bin/bin2txt.js?str='+encodeURIComponent($('fbin').value); 
     var js_effets=document.createElement("script"); 
     js_effets.setAttribute("type", "text/javascript"); 
     js_effets.setAttribute("src", url); 
     document.getElementsByTagName("script")[0].parentNode.insertBefore(js_effets,document.getElementsByTagName("script")[0]); 
     $('frm').style.display='block'; 
    } 
    //]]> 
    </script> 

回答

1

你確定你想在PHP?

PHP意味着你需要一個解釋你的代碼的網絡服務器。您的粘貼片段位於JavaScript中,由瀏覽器運行,因此您不需要服務器即可對其進行測試。

無論如何,如果你想創建一個像你所鏈接的工具那樣的工具,實際上它會更有效率。

2函數在JavaScript中做轉換:這裏

function txt2bin(txt) { 
    var pad = '00000000', 
     bin = '', 
     c = ''; 
    for(var i = 0, l = txt.length; i < l; i++) { 
     c = txt.charCodeAt(i).toString(2); 
     bin += (pad + c).substr(c.length); 
    } 
    return bin; 
} 

function bin2txt(bin) { 
    var split = bin.match(/.{8}/g), 
     txt = ''; 
    for(var i = 0, l = split.length; i < l; i++) { 
     txt += String.fromCharCode(parseInt(split[i], 2)); 
    } 
    return txt; 
} 

測試他們:http://jsfiddle.net/S3nB7/

txt2bin需要一個ASCII編碼的字符串,然後返回它的二進制表示。

bin2txt以0和1的字符串表示ASCII編碼字符串的二進制代碼並返回ASCII字符串。

PHP這將轉化:

<?php 

function txt2bin($txt) { 
    $bin = ''; 
    for($i = 0, $l = strlen($txt); $i < $l; $i++) { 
     $bin .= sprintf('%08b', ord(substr($txt, $i, 1))); 
    } 
    return $bin; 
} 

function bin2txt($bin) { 
    $split = str_split($bin, 8); 
    $txt = ''; 
    for($i = 0, $l = count($split); $i < $l; $i++) { 
     $txt .= chr(bindec($split[$i])); 
    } 
    return $txt; 
} 

測試在這裏:http://codepad.org/Y3sFJrR7

+0

嗯,我想做到這一點在PHP,因爲我知道一點PHP的,我什麼都不知道在Javascript中:P – Marco

+0

我試圖讓我的代碼工作,但我無法得到它的工作原理:# http://jsfiddle.net/bhEyf/ – Marco

+0

http://jsfiddle.net/bhEyf/1/ 我還會將示例翻譯爲PHP – Roman