ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1261  
Старый 18.12.2007, 19:38
Аватар для astrologer
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e''chr(\1)''3332353637383940'); 
 
Ответить с цитированием

  #1262  
Старый 18.12.2007, 19:43
Аватар для Macro
Macro
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #1263  
Старый 18.12.2007, 19:49
Аватар для astrologer
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Macro  
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
И, потом, будет лишь выводиться "chr(33)", например, а нам нужен результат функции chr().
функция chr принимает только целые числа

Последний раз редактировалось astrologer; 18.12.2007 в 19:52..
 
Ответить с цитированием

  #1264  
Старый 18.12.2007, 21:13
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

я так понял, функция chr принимает только целые ДЕСЯТИЧНЫЕ значения в качестве аргумента, с целыми в хексе она не работает, так что код Macro выводит не тот результат, что требуется. Так как входная строка (точнее пары символов) - она предполагается в хексе (это хэш вообще-то с набором символов 0-9a-f), а не коды символов в десятичном виде.

т.е 30313233343536373839404142434445 ->  !"#$%&'()*+,-
а вообще-то надо:
30313233343536373839404142434445 -> 0123456789@ABCDE

так как 0x30 это 0, 0x31 - 1 и т.д. так что VampiRUS прав, надо преобразовывать в десятичный вид аргумент, прежде чем скормить chr его.
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение?
 
Ответить с цитированием

  #1265  
Старый 18.12.2007, 21:42
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Ну и теперь два вопроса:
1. Реально ли в мускуле хранить такие строки (в том числе и с непечатаемыми служебными символами с кодами 0-255) ?
2. С обратным преобразованием не будет проблем?
 
Ответить с цитированием

  #1266  
Старый 18.12.2007, 21:43
Аватар для astrologer
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от -=lebed=-  
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение?
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie''chr(0x\1)''30313233343536373839404142434445');
?>
Выдает требуемое:
Код:
0123456789@ABCDE

Последний раз редактировалось astrologer; 18.12.2007 в 21:55..
 
Ответить с цитированием

  #1267  
Старый 18.12.2007, 21:59
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

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

  #1268  
Старый 18.12.2007, 22:11
Аватар для Dimi4
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


Отправить сообщение для Dimi4 с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ponchik  
Ну пиши, в чём проблема? Тема называется "php Новичкам: задаем вопросы" а не "php Халявщикам: пишем переводчики"

Мой те совет юзай promt.ru или другой веб переводчик, посылай туда свой запрос, результат выводи на сайте (работа с сокетами), нарушение авторских прав и т.д. но это токо совет, решать тебе
Я наверное не совсем так выразился.Мне не нужен именно переводчик. Мне нужно ятоб например юзер вводить в форме: r57а ему в ответ - Шелл.Последнея версия...Сайт. Думаю понял.
Я хотел сделать файл типа base.php
PHP код:
<?
$slova 
= array(
'r57'=>'Шелл.Последняя версия'
'qwe'
=>'qwe'
);
?>
Мне нужна функция, котороя б брала слова из етого файла и "переводила их"
 
Ответить с цитированием

  #1269  
Старый 18.12.2007, 22:31
Аватар для scrat
scrat
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме:
5812656

Репутация: 1540


Отправить сообщение для scrat с помощью ICQ
По умолчанию

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

  #1270  
Старый 18.12.2007, 22:55
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 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..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ