estaba observando unas funciones de un código de vb6 y queria pasarlo a php pero hay cosas que no entiendo bien como por ejemplo esto:
Chr(Len(pck) Mod 256)
crh convierte decimales a string y len es el tamaño del string de pck pero mod 256? que hace mod? le da limite o le hace alguna operación aritmética?
Mod te devuelve el resto de una division
ejemplo:
5 / 2 = 2
5 Mod 2 = 1 (Resto de 5 / 2)
en PHP se usa con el signo "%"
VB
5 Mod 2
PHP
5 % 2
Cortito, pero espero que te sirva ;D
si, muchas gracias :D
y cuando hago \ es lo mismo que dividir / ?
Chr(Len(pck) \ 256)
supongo que quiere decir divide ya que division para mi es / no \
Divide ... pero solo retorna la parte entera ... 29\6 = 4
Saludos
o sea que sería
$valor = (int)(29 / 6);
y cuando me dice
Chr("&H" & numero)
&H supongo que se refiere al valor hexadecimal no? pero si no hay valor significa que es \x00 o me equivoco?
Perdón .. he corregido ... 29\6=4 ... da la parte entera .. y te lo había dejado como si redondeara :P
Exacto .. es el valor hexadecimal, y si no hay nada debería de tirar error no debería de funcionar, a menos que numero valga 0
Saludos
bueno así quedó, gracias:
Public Function data(YahooID As String) As String
data = Header("57", "1À€" & YahooID & "À€")
End Function
Public Function Header(ByVal PacketType As String, ByVal pck As String) As String
Header = "YMSG" & Chr(0) & Chr(13) & String(2, 0) & Chr(Len(pck) \ 256) & Chr(Len(pck) Mod 256) & Chr(0) & Chr("&H" & PacketType) & String(8, 0) & pck
End Function
<?php
function data($yahoo_id){
return head('57', '1À€'.$yahoo_id.'À€');
}
function head($tipo_paquete, $paquete){
return
"YMSG\x00\x0D\x00\x00".
ord((int)(strlen($paquete) / 256)).
ord(strlen($paquete) % 256).
"\x00".
ord($tipo_paquete).
str_repeat("\x00", 8).
$paquete;
}
?>
Y eso donde iría? Chat Yahoo? :P
Saludos
esque hace tiempo hize un cliente de yahoo chat pero el módulo bass del login no lo habia hecho yo y quería pasarlo a php pero en modo consola usando stdin para obtener los strings similar al zinc de linux pero de codigo manipulable sin la necesidad de compilar. Para el cifrado de YMSG12ENCRYPT.dll lo quiero solucionar descompilandolo o haciendo un servicio online donde puedas enviar los datos y te devuelve el string en modo de base64 o hexadecimal directamente, algo asi como una api.
AAah! imaginé que era para el cliente, pero no entendia a que iba el php, ahora si :P
Saludos