• Publicidad

Traducir código PHP a Perl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Traducir código PHP a Perl

Notapor BigBear » 2017-03-30 19:26 @851

Hola, estoy tratando de traducir este código PHP a Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. function javascript_encode($text)
  2. {
  3.     $encoded = chunk_split(bin2hex($text), 2, '%');
  4.     return $encoded = '%' . substr($encoded, 0, strlen($encoded) - 1);
  5. }
Coloreado en 0.019 segundos, usando GeSHi 1.0.8.4

Una entrada a la función sería:
Sintáxis: [ Descargar ] [ Ocultar ]
Using javascript Syntax Highlighting
  1.  <script>alert('hola');</script>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Salida:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%27%68%6f%6c%61%27%29%3b%3c%2f%73%63%72%69%70%74%3e
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Lo uso en una aplicación en PHP para codificar código JavaScript, pero la verdad no sé bien el nombre de lo que estoy haciendo. Necesito que alguien me diga cómo se llama este método para buscar en Google para ver si se puede hacer en Perl y ver si hay ejemplos de cómo se hace. ¿Alguien me podría ayudar?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Traducir código PHP a Perl

Notapor explorer » 2017-03-31 13:12 @592

En Perl es muy sencillo, se puede hacer de varias maneras. Una de ellas es usando unpack():
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use v5.14;
  3.  
  4. my $texto = q[<script>alert('hola');</script>];
  5.  
  6. print "%$_" for unpack '(H2)*', $texto;
  7. print "\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Lo que se hace es leer bytes desde $texto, y lo convierte en grupos de dos nibbles, pasados a hexadecimal, a los que agregamos un '%' al principio de cada grupo. Más información, en tu propio ordenador con el comando perldoc perlpacktut, y en la Web.

Este tipo de codificación... realmente no sé si recibe un nombre concreto. En el módulo URI::Escape se le llama Percent-encode.

A propósito, la conversión contraria se puede hacer con esta expresión regular:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $cadena_codificada =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

(sacado de la documentación del mismo URI::Escape).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducir código PHP a Perl

Notapor BigBear » 2017-04-01 08:17 @387

Perfecto, gracias por la ayuda, explorer.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 5 invitados

cron