Vérifier qu'une chaine de caractère est un entier

Répondre
nguim
le 05/03/2014 à 16:37
nguim
Bonsoir à tous !
J'ai écrit un petit code pour vérifier que toutes les lignes de mon fichier texte sont des entiers.
Et s'il existe une ligne qui contient un caractère alphabétique, il me redirige vers une autre page et affiche un message d'erreur.
Mais lorsque j'exécute le code, il me redirige toujours vers cette page, même si toutes les lignes sont des entiers.
Lorsqu'il y'a un caractère alphabétique, il affiche le message d'erreur avec la ligne correspondante.
Mais lorsqu'il n'y a pas de caractère alphabétique dans le fichier, il me redirige toujours vers cette page prévue et affiche toujours le message d'erreur et ne met aucune ligne correspondante.
Voici mon code:
<?php <?php

set_time_limit(0);
error_reporting(E_ALL ^ E_NOTICE);

mysql_connect('localhost','root','');
mysql_select_db('gestnum');


//on mesure la longueur des différentes lignes du fichier

$handle = fopen("fichiernumcr.txt", "r");
$i=0;

while (($taille = fgetcsv($handle, 0, "\n")) !== FALSE)
{
$i++;
$nul = strlen($taille[0]);


// On verifie que le fichier ne contient que des entiers

if (ctype_digit($taille[0]))
{
//$entier=1;
//$ligne=$i;
//echo 'La chaîne '. $entier .' est bien un entier<br/>';
}
else
{
$entier1=0;
$ligne=$i;
}

}


//Erreur fichier quand il contient des lettres

if($entier1 ==0)
{
header('Location: ../gestionnaire-mdn/gerer-les-mdn-a-creer.php?er3=fstr1');

}


?>

php ?>


Je ne comprends plus rien.
S'il vous plait aidez moi.
Merci d'avance.
LupusMic
le 05/03/2014 à 17:01
LupusMic
<?php

// XXX mysqli, pas mysql qui est déconseillé depuis un moment
mysql_connect('localhost','root','');
mysql_select_db('gestnum');

//on mesure la longueur des différentes lignes du fichier

$handle = fopen("fichiernumcr.txt", "r");
$i=0;

$entier = true;
while (($taille = fgetcsv($handle, 0, "\n")) !== FALSE)
{
++$i;
$nul = strlen($taille[0]);

// XXX On verifie que la ligne ne contient que des entiers
if (!ctype_digit($taille[0]))
{
$ligne=$i;
break;
}
}


//Erreur fichier quand il contient des lettres

if($entier1 === false)
{
header('Location: ../gestionnaire-mdn/gerer-les-mdn-a-creer.php?er3=fstr1');

}
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
nguim
le 05/03/2014 à 17:26
nguim
Merci pour votre aide.
Je me rejoissais déjà après avoir vu votre code mais je de le tester et il me redirige toujours pour rien,
S'il vous plait regarder encore car le problème reste.
LupusMic
le 06/03/2014 à 19:29
LupusMic
Je n'ai pas fais gaffe, la variable $entier1 devrait être $entier. Mais, $got_integer serait un meilleur nom.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
nguim
le 07/03/2014 à 14:31
nguim
Bonjour !

Je suis très reconaissant pour votre aide. Le code vous m'avez envoyé fonctionne très bien. Et mon problème est enfin resolu.

Merci encore.

Salut !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours