我想将二进制文件翻译成文本并返回表单,我在谷歌或其他地方找不到任何示例。
我想做这样的事情 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>
答案 0 :(得分:1)
你确定要用PHP吗?
PHP意味着您需要一个能够解释代码的Web服务器。您的粘贴代码段是javascript,由浏览器运行,因此您不需要服务器来测试它。
无论如何,如果你想创建一个像你链接的工具,那么在javascript中实现它实际上会更有效率。
在javascript中使用2个函数进行转换:
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;
}