Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

conversion binaire en champ text

2 réponses
Avatar
Etienne SOBOLE
Salut.

J'aimerai convertir un fichier binaire quelconque en une chaine de
caractères "valide".
pour faire ca actuellement j'utilise base64_encode et base64_decode.
Ca marche tres bien! par contre ca offre le desavantage de prendre 25% de
place en plus (sur www.php.net il parlent de 33%) m'enfin bon, le probleme
c'est pas la, ou plus exactement si! il est la.
Je cherche un autre format d'encodage permettant de limiter le grossisement
du fichier.

l'idée c'est ensuite de sauver ca dans un champ text d'une base de donnée...
PS: je souhaite utiliser un champ text et non un autre type de champs...
donc inutile de me parler de tel ou tel type de champ su SGDB ;)

merci
Etienne

2 réponses

Avatar
Olivier Miakinen

J'aimerai convertir un fichier binaire quelconque en une chaine de
caractères "valide".
pour faire ca actuellement j'utilise base64_encode et base64_decode.
Ca marche tres bien! par contre ca offre le desavantage de prendre 25% de
place en plus (sur www.php.net il parlent de 33%)


C'est bien cela. l'encodage en base64 prend 33% de place en plus que la
taille d'origine, ce qui fait 25% de la taille résultante.

Par exemple, pour encoder 300 octets, tu as besoin de 100 octets
supplémentaires, ce qui donne 400. Or 100 = 33% de 300 = 25% de 400.

m'enfin bon, le probleme
c'est pas la, ou plus exactement si! il est la.
Je cherche un autre format d'encodage permettant de limiter le grossisement
du fichier.


Pour un fichier binaire quelconque, il n'y a pas mieux que le base64.
Parmi 256 valeurs possibles en binaire, il n'y en a guère plus que 64
qui ne posent pas de problème (en tout cas moins de 128), tu ne peux
donc pas coder plus de 6 bits utiles par octet de 8 bits transmis. Le
rapport transmis/utile est donc au mieux 8/6 = 133%.

Bien sûr, si ce n'est pas un binaire quelconque, c'est différent
(compressions d'images par exemple) mais là il faut préciser. Et en
tout cas c'est hors charte sur fclp.

Avatar
Etienne SOBOLE
Bien sûr, si ce n'est pas un binaire quelconque, c'est différent
(compressions d'images par exemple) mais là il faut préciser. Et en
tout cas c'est hors charte sur fclp.


Ce sont bien des fichiers binaires quelconque...
et c'est bien en phase avec le PHP puisque je cherche une fonction PHP ;)

Etienne