slonick2012@vk
10-05-2012, 01:34
ferget, :( Нет код немного не работает, Не правильно записывает значение, в hex оно верно, а в utf-8 нет. вот код
<?php
$mod = $_GET["mod"];
switch($mod) {
case false:
default:
echo '
<form action="?mod=result1" method="post">
<input name="c1" value="1" type="checkbox">
<input size="6" name="bb1" type="text"><br><br>
<input style="margin-top: 5px;" value="дальше »" type="submit"><br>
</form>
</body></html>';
break;
case result1:
function ascii2hex($ascii) {
if ($_POST['c1'] == '')
$bb1 = 'ав';
if ($_POST['c1'] == '1')
$bb1 = $_POST['bb1'];
$ascii = $bb1;
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
return $hex;
}
$source_column2 = ascii2hex($source_column1);
$patterns[0] = "/ /";
$replacements[0] = "";
$binary = preg_replace($patterns, $replacements, $source_column2);
echo $binary;
$fd = fopen("fd.class", "rb");
$data = fread($fd, 316);
fseek($fd, 317);
$data2 = fread($fd, filesize("fd.class"));
fclose($fd);
$bb1 = $_POST['bb1'];
$test = strlen($bb1);
$test1 = $test/2;
if ($test1 <= 9)
{$zero = '0';
$test2 = $zero.$test1;}
else
{$test2 = $test1;}
$binary2 = pack("H" . 2, $test2);
$binary1 = pack("H" . $test, $binary);
$rand = "class/fd.class";
$fd = fopen("$rand", "w");
$fdata = $data.$binary2.$binary1.$data2;
fwrite($fd,$fdata);
fclose($fd);
break;}
?>
Английские буквы записываются нормально
<?php
$mod = $_GET["mod"];
switch($mod) {
case false:
default:
echo '
<form action="?mod=result1" method="post">
<input name="c1" value="1" type="checkbox">
<input size="6" name="bb1" type="text"><br><br>
<input style="margin-top: 5px;" value="дальше »" type="submit"><br>
</form>
</body></html>';
break;
case result1:
function ascii2hex($ascii) {
if ($_POST['c1'] == '')
$bb1 = 'ав';
if ($_POST['c1'] == '1')
$bb1 = $_POST['bb1'];
$ascii = $bb1;
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
return $hex;
}
$source_column2 = ascii2hex($source_column1);
$patterns[0] = "/ /";
$replacements[0] = "";
$binary = preg_replace($patterns, $replacements, $source_column2);
echo $binary;
$fd = fopen("fd.class", "rb");
$data = fread($fd, 316);
fseek($fd, 317);
$data2 = fread($fd, filesize("fd.class"));
fclose($fd);
$bb1 = $_POST['bb1'];
$test = strlen($bb1);
$test1 = $test/2;
if ($test1 <= 9)
{$zero = '0';
$test2 = $zero.$test1;}
else
{$test2 = $test1;}
$binary2 = pack("H" . 2, $test2);
$binary1 = pack("H" . $test, $binary);
$rand = "class/fd.class";
$fd = fopen("$rand", "w");
$fdata = $data.$binary2.$binary1.$data2;
fwrite($fd,$fdata);
fclose($fd);
break;}
?>
Английские буквы записываются нормально