Wie konvertieren von text in \x-codes?
Will ich konvertieren normalen text \x-codes für e.g \x14\x65\x60
Beispiel :
normal text = "base64_decode"
converted \x codes for above text = "\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65"
Wie dies zu tun? Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
PHP 5.3 one-liner:
Ausgänge
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65
base64_decode('OVUP/PZrLzoZpaeQga/TpK9xeJAOuTTbUzm9NplDuhSUMkklPtDeDQDgidUEIX+ijxe80EI')
Den
ord()
Funktion gibt Sie den decimal-Wert für ein einzelnes byte.dechex()
wandelt es in hex. So, um dies zu tun, eine Schleife durch jedes Zeichen in der Zeichenfolge und gelten für beide Funktionen.str_pad
nicht benötigte hier: es sollte nur passen\x[0-9A-Fa-f]{1,2}
Hier arbeiten code:
Sehen Sie es in Aktion.
\xa
eher als\x0a
. Nachdenken über es, ich weiß nicht, ob diese Fragen, ich habe immer nur vermutet, es tut. Und entfliehen Sie dem backslash-da braucht es die Flucht. In einer einzigen Zeichenfolge in Anführungszeichen, es ist nicht egal, so viel, aber es ist noch immer gute Praxis.'\x'
braucht nicht zu fliehen.To specify a literal backslash, double it (\\)
. PHP ist ziemlich gut bei dem, was du meintest, aber da kann man noch nutzen\, um ein einfaches Anführungszeichen wörtlich auszugeben, Sie technisch sollte die Flucht der backslash.\'
in einer single-quoted string.Für eine alternative zu
dechex(ord())
Sie können auchbin2hex($char)
,sprintf('\x%02X')
oderunpack('H*', $char)
. Zusätzlich anstattpreg_replace_callback
verwenden, können Siearray_map
mitstr_split
.Beispiel: https://3v4l.org/6Pc6X
bin2hex
Ergebnis
entpacken
Ergebnis
sprintf
Ergebnis