web-dev-qa-db-fra.com

Comment convertir une chaîne en ASCII valeur en PHP sans ord ()?

Je cherche à convertir une chaîne dire 'Hello' du monde à sa valeur ASCII en php. Mais je ne veux pas utiliser ord(). Existe-t-il d'autres solutions pour imprimer la valeur ASCII sans utiliser ord()?

4
Rani

unpack()

Décompresse une chaîne binaire dans un tableau selon le format donné.

Utilisez le formatC* pour renvoyer tout ce que vous obtiendrez de ord().

print_r(unpack("C*", "Hello world"));
Array
(
    [1] => 72
    [2] => 101
    [3] => 108
    [4] => 108
    [5] => 111
    [6] => 32
    [7] => 119
    [8] => 111
    [9] => 114
    [10] => 108
    [11] => 100
)
18
Paul

Vous pouvez essayer la fonction native iconv:

string iconv ( string $in_charset , string $out_charset , string $str )

Donc ce serait:

<?php
$string = "This is the Euro symbol '€'.";
echo iconv("UTF-8", "ASCII", $text), PHP_EOL;

?>

Extrait de: http://php.net/manual/en/function.iconv.php

1
Purple Lady

Vous pouvez parcourir chaque caractère de la chaîne, trouver son offset dans une chaîne de dictionnaire en utilisant say strpos , puis ajouter un numéro de base, par exemple 65 si votre dictionnaire commence par "ABC...

Vous devez gérer les caractères non trouvés. Il est donc préférable d’utiliser un dictionnaire " #ABC ... puis d’ajouter une base de 64 , de toute évidence, vous devez tester pour "#" comme caractère spécial, alors.

Vous pouvez même tester plusieurs chaînes distionaires pour des jeux de caractères limités " # A..Z ", " # a..z ", " # 0..9 "

Vous avez l’idée, mais sans savoir pourquoi vous voulez vous limiter, je ne peux pas vous dire si cela vous est utile.

0
Gavin Jackson