stepibou
Messages postés112Date d'inscriptionjeudi 11 mars 2004StatutMembreDernière intervention11 octobre 2006 8 févr. 2005 à 20:06
hello, Vapula, et les autres,
j'ai utilisé ta source, mais y a deux petites erreurs :
- les ; de la boucle for.
- une parentaise en trop a la ligne ou y a strlen.
voici le code corrigé :
function hex_rvb($hex){
// test si la $hex est un tableau
if(!is_array($hex)) {
print("Vous devez saisir un tableau");
return 0;
}
$str_hex ="";
//conversion enchaine pour tester les caractères
for($i=0; $i<3; $i++){
$str_hex = $str_hex.$hex[$i];
}
//teste de la chaine de caractere
if(! ereg("[0-9a-fA-F]{6}", $hex)) {
print("Ce n'est pas un nombre hexadécimal");
return 0;
}
$rvb = "";
for($i=0; $i<3; $i++) {
// teste si la valeur a une longuer de 2
if(strlen($hex[$i]) < 2) {
print("La ".$i." valeur n'est pas une valeur hexa : 2 caracteres par case");
return 0;
}
//conversion en hexadecimal et création de la chaine rvb
$rvb = $rvb.(hexdec($hex[$i]))." ";
//pour ceux que l'espace de fin dérange
$rvb = trim($rvb);
}
return $rvb;
}
Voila sinon tu pourrai expliquer quoi mettre ds ta fonction.
J'ai une autre version sans utiliser array :
function hex_rvb($hex){
//teste de la chaine de caractere
if(! ereg("[0-9a-fA-F]{6}", $hex)) {
print("Ce n'est pas un nombre hexadécimal");
return 0;
}
$rvb = "";
for($i=0; $i<3; $i++) {
//conversion enchaine pour tester les caractères
$hexe[$i] = substr($hex, 2*$i, 2);
// teste si la valeur a une longuer de 2
if(strlen($hexe[$i]) < 2) {
print("La ".$i." valeur n'est pas une valeur hexa : 2 caracteres par case");
return 0;
}
8 févr. 2005 à 20:06
j'ai utilisé ta source, mais y a deux petites erreurs :
- les ; de la boucle for.
- une parentaise en trop a la ligne ou y a strlen.
voici le code corrigé :
function hex_rvb($hex){
// test si la $hex est un tableau
if(!is_array($hex)) {
print("Vous devez saisir un tableau");
return 0;
}
$str_hex ="";
//conversion enchaine pour tester les caractères
for($i=0; $i<3; $i++){
$str_hex = $str_hex.$hex[$i];
}
//teste de la chaine de caractere
if(! ereg("[0-9a-fA-F]{6}", $hex)) {
print("Ce n'est pas un nombre hexadécimal");
return 0;
}
$rvb = "";
for($i=0; $i<3; $i++) {
// teste si la valeur a une longuer de 2
if(strlen($hex[$i]) < 2) {
print("La ".$i." valeur n'est pas une valeur hexa : 2 caracteres par case");
return 0;
}
//conversion en hexadecimal et création de la chaine rvb
$rvb = $rvb.(hexdec($hex[$i]))." ";
//pour ceux que l'espace de fin dérange
$rvb = trim($rvb);
}
return $rvb;
}
Voila sinon tu pourrai expliquer quoi mettre ds ta fonction.
J'ai une autre version sans utiliser array :
function hex_rvb($hex){
//teste de la chaine de caractere
if(! ereg("[0-9a-fA-F]{6}", $hex)) {
print("Ce n'est pas un nombre hexadécimal");
return 0;
}
$rvb = "";
for($i=0; $i<3; $i++) {
//conversion enchaine pour tester les caractères
$hexe[$i] = substr($hex, 2*$i, 2);
// teste si la valeur a une longuer de 2
if(strlen($hexe[$i]) < 2) {
print("La ".$i." valeur n'est pas une valeur hexa : 2 caracteres par case");
return 0;
}
$temp = hexdec($hexe[$i]);
if(strlen($temp) < 2){
// ajout du zéro
$temp = "0". $temp;
}
if(strlen($temp) < 3){
// ajout du zéro
$temp = "0". $temp;
}
//conversion en hexadecimal et création de la chaine rvb
$rvb = $rvb.($temp)." ";
//pour ceux que l'espace de fin dérange
$rvb = trim($rvb);
}
return $rvb;
}
bye ;-)