Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.12.2007, 19:38
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e', 'chr(\1)', '3332353637383940');
|
|
|

18.12.2007, 19:43
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме: 1845062
Репутация:
1079
|
|
Сообщение от astrologer
Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e', 'chr(\1)', '3332353637383940');
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
Однако, мысль отличная.
PHP код:
<?
$str='3334353637383940';
echo(preg_replace('/([\da-f]{2})/ie', 'chr(\1);',$str));
?>
ЗЫ что-то я сегодня плохо соображаю
Последний раз редактировалось Macro; 18.12.2007 в 19:51..
|
|
|

18.12.2007, 19:49
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от Macro
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
И, потом, будет лишь выводиться "chr(33)", например, а нам нужен результат функции chr().
функция chr принимает только целые числа
Последний раз редактировалось astrologer; 18.12.2007 в 19:52..
|
|
|

18.12.2007, 21:13
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
я так понял, функция chr принимает только целые ДЕСЯТИЧНЫЕ значения в качестве аргумента, с целыми в хексе она не работает, так что код Macro выводит не тот результат, что требуется. Так как входная строка (точнее пары символов) - она предполагается в хексе (это хэш вообще-то с набором символов 0-9a-f), а не коды символов в десятичном виде.
т.е 30313233343536373839404142434445 -> !"#$%&'()*+,-
а вообще-то надо:
30313233343536373839404142434445 -> 0123456789@ABCDE
так как 0x30 это 0, 0x31 - 1 и т.д. так что VampiRUS прав, надо преобразовывать в десятичный вид аргумент, прежде чем скормить chr его.
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение? 
|
|
|

18.12.2007, 21:42
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Ну и теперь два вопроса:
1. Реально ли в мускуле хранить такие строки (в том числе и с непечатаемыми служебными символами с кодами 0-255) ?
2. С обратным преобразованием не будет проблем?
|
|
|

18.12.2007, 21:43
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от -=lebed=-
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение? 
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie', 'chr(0x\1)', '30313233343536373839404142434445');
?>
Выдает требуемое:
Последний раз редактировалось astrologer; 18.12.2007 в 21:55..
|
|
|

18.12.2007, 21:59
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от astrologer
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie', 'chr(0x\1)', '30313233343536373839404142434445');
?>
Выдает требуемое: Первоначальные данные всё же только цифровые или нет?
Входные данные это любой мд5 хэш (32 символа 0-9a-z), т.е 32 байта в ASCII представлении, задача: его закодировать в 16 байт, в heх, так как md5-хэш на самом деле это ничто иное как HEX-число в 16 байт.
|
|
|

18.12.2007, 22:11
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Сообщение от Ponchik
Ну пиши, в чём проблема? Тема называется "php Новичкам: задаем вопросы" а не "php Халявщикам: пишем переводчики"
Мой те совет юзай promt.ru или другой веб переводчик, посылай туда свой запрос, результат выводи на сайте (работа с сокетами), нарушение авторских прав и т.д. но это токо совет, решать тебе 
Я наверное не совсем так выразился.Мне не нужен именно переводчик. Мне нужно ятоб например юзер вводить в форме: r57а ему в ответ - Шелл.Последнея версия...Сайт. Думаю понял.
Я хотел сделать файл типа base.php
PHP код:
<?
$slova = array(
'r57'=>'Шелл.Последняя версия'
'qwe'=>'qwe'
);
?>
Мне нужна функция, котороя б брала слова из етого файла и "переводила их "
__________________
BlackHat. MoDL
|
|
|

18.12.2007, 22:31
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Сообщение от Dimi4
Я наверное не совсем так выразился.Мне не нужен именно переводчик. Мне нужно ятоб например юзер вводить в форме: r57а ему в ответ - Шелл.Последнея версия...Сайт. Думаю понял.
Я хотел сделать файл типа base.php
PHP код:
<?
$slova = array(
'r57'=>'Шелл.Последняя версия'
'qwe'=>'qwe'
);
?>
Мне нужна функция, котороя б брала слова из етого файла и "переводила их "
создаёшь таблицу в бд и всё.стукай в аську(на авике) помогу
|
|
|

18.12.2007, 22:55
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Теперь нужна функция обратного преобразования этой:
PHP код:
function code_hash($hash)
{
include('conf.php');
$n=0;
$hash_code="";
do
{
$code='0x'.$hash[$n].$hash[$n+1];
$hash_code.=chr(hexdec($code));
$n++;
}
while ($n++<31);
return $hash_code;
}
PHP код:
function decode_hash($string)
{
$n=0;
$decode_hash="";
do
{
$code=ord($string[$n]);
$decode_hash.=dechex($code);
}
while ($n++<15);
return $decode_hash;
}
Последний раз редактировалось -=lebed=-; 18.12.2007 в 23:03..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|