Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.186.140] |
|
Сообщ.
#1
,
|
|
|
Есть сайт, написанный на Perl, представляет из себя интернет-магазин, к каждому товару прикрепляется изображение, ссылка на которое хранится в mysql, только не в открытом виде, а в виде hash-массива с несколькими ключами.
Задача состоит в том, чтобы как то получить ссылку из PHP, возможно ли это, не прибегая вообще к perl ? Сама запись в таблице выглядит так: 0x363837343734373033613266326637333635373237363639363336353334373336353732373636393633363532653732373532663733373937333734363536643266363336663664366436663665326636393664363136373635373332663733373937333734363536643265343936643631363736353437363136633663363537323739326633363334333633393266333933303266356633313330333033393331333135663737363536323265366137303637 PHP выдает её вот в таком виде: 687474703a2f2f7365727669636534736572766963652e72752f73797374656d2f636f6d6d6f6e2f696d616765732f73797374656d2e496d61676547616c6c6572792f32353137342f39302f5f3130303136395f7765622e6a7067 |
Сообщ.
#2
,
|
|
|
Лучше привел перловский код - как из hash-массива получается картинка.
|
Сообщ.
#3
,
|
|
|
разобрался, оказывается это всего лишь адрес, записанный в хексе
ниже функция для перевода такого хекса в читабельный вид с учетом кириллицы и спец.символов - они остаются в хексе function hexToURL($hex) { $dbl_img = strpos($hex, ",", 140); //Check for second image and delete it from string if($dbl_img === false){ $url_hex=$hex;} else{ $url_hex = substr($hex, 0, $dbl_img);} $strLength = strlen($url_hex); $returnVal = ''; for($i=0; $i<$strLength; $i += 2) { $dec_val = hexdec(substr($url_hex, $i, 2)); if(($dec_val >= 65 AND $dec_val <= 90) OR ($dec_val >= 97 AND $dec_val <= 122) OR ($dec_val >= 48 AND $dec_val <=58) OR $dec_val == 47 OR $dec_val == 46){ //Convert only ASCII symbols, extentions symbols stays in hex $returnVal .= chr($dec_val);} else{ $returnVal .= "%".substr($url_hex, $i, 2);} } return $returnVal; } |