Cita:
Iniciado por julslash ESTE ES EL CÓDIGO ORIGINAL EN VISUAL FOX PRO
EL INGRESO DE VALOR ES "PROFIT1001 " 13 CARACTERES QUE INCLUYEN ESPACIOS EN BLANCO CUANDO SE GUARDAN EN LA BASE DE DATOS DEL SERVIDOR SQL, LA CLAVE SIGUE LA SIGUIENTE FORMA //E$Àá[ØÍÍØ
NECESITO PASAR LAS FUNCIONES A PHP PERO NO SÉ LO QUE SUCEDE QUE EL RESULTADO NO ME MUESTRA, ¿ALGUIEN PUEDE VER EL CÓDIGO PHP Y VER LA PARTE MAL? ¡¡¡¡¡¡POR FAVOR!!!!!!
codigo visual fox pro
Antes, el tema de traspaso de funciones, es un poco delicado, por que puedes obtener Falsos positivos, antes de empezar a trabajar con el traspaso de funciones,
tiense que hacer 2 cosas
1 meter la palabra en un archivo TXT
2 meter el resultado en otro TXT
has eso 3 veces con distintos palabras con sus respectivas claves codificadas
El tema codificaciones un tema muy culero, por que ASCII ,UTF8,UTF16
a nivel bytes van variando y tratar con ello es mas delicado un Byte mal puesto, hecharia de bajo toda tu funcion
una cosa
esos simbolos, de donde las sacaste, estas seguro que genera ello, no es que tu navegador lo esta interpretando y esta mostrando lo que mejor se ajusta para interpretar los bytes??
bueno primero lo primero por experiencia
VISUAL FOX PRO= supongo que se trata de un sistema antiguo del cual aun no se estandarizo el UTF8 y como todo programador avanzado en ese entocnes suele usar ASCII, por lo tanto toda la funcion debe ser tratado como ASCII o ANSI (google para aclarar tus dudas)
vamos a analizar y hacer suposiciones
Código Python:
Ver originalFUNCTION encript //crear funcion
Parameter pkey //indica que el primer parametro de la funcionsera "pkey"
key_encript = " " //variable contenedora key_encript con valor de 1 espacion
For i = 1 To Len(pkey) //un bucle, por la susposicion de que un String empieza en 1 y no (0 como php)
key_encript = key_encript+fun(Substr(pkey, i, 1)) //llena la variable contenedora caracter por caracter
Next // Indica que continua al siguiente bucle
Return (Substr(key_encript, 2, Len(key_encript)-1)) // Retorna el resultado, un fragmento de la variable contenedora
Endfunc
FUNCTION fun
Parameter car //indica que el primer parametro de la funcionsera "car"
Return (Chr((((Asc(car)+17)*11)%255))) //donde la magia ocurre, ay simbolos de suma,multiplicacion y MODULO
ENDFUNC
clear
por lo que segun las suposiciones y tu codigo, puedo ver que el problema esta en que las funciones trabajan de forma distinta
ej foxpro un string empieza en 1; mientras que en PHP en 0; y eso afecta a todas las funciones de cadenas|strings
en foxpro la funcion ASC
https://www.visualfoxpro.com/asc.html
vendria hacer lo mismo en PHP con la funcion ORD
https://www.php.net/ord
la funcion en foxpro "Chr" es la misma que en PHP chr
el simbolo de "+" en foxpro puede significar SUMA o
CONCATENACION
en php el Simbolo "+" solo sirve para SUMAR, y para concatenar es el simbolo "." punto, ten en cuenta ello y revisa tu codigo
y solo para alumbrarte en tu camino te doy una mano aca
Código foxpro:
Ver originalSubstr(key_encript, 2, Len(key_encript)-1)
es igual a
como deducimos que foxpro trabaja entamente con ASCII , ANSI
esta funcion o cualquier cosa fuera de ASCII,ANSI
no valen. ni bien al cazo por el momento claro
reucerda googlear en las paginas oficiales de cada lenguaje , y saber que hace cada cosa exactamente