Comment lire ligne par ligne en php
lorsque j'essaie d'insérer chaque ligne dans ma base de données oracle, je reçois un message d'erreur indiquant nombre non valide, mais si vous avez une seule ligne dans le fichier, il fonctionne très bien.
$file = @fopen('file.text', "r") ;
//while there is another line to read in the file
while (!feof($file))
{
//Get the current line that the file is reading
$currentLine = fgets($file) ;
$currentLine = explode(' ',$currentLine) ;
insert($currentLine) ;
}
fclose($file) ;
les lignes de ressembler à ce
1 4 100
1 4 101
avez-vous essayé de simplement l'écho de la requêtes que vous aller? Les Chances sont que quelque chose n'est pas ajouté à la requête de la façon que vous pensez qu'elle est.
Pas assez d'informations. Où est votre fonction d'insertion?
Comment est-ce que votre
nous n'avons pas besoin
Pas assez d'informations. Où est votre fonction d'insertion?
Comment est-ce que votre
insert()
fonction?nous n'avons pas besoin
insert()
ici car il n'influence pas le problème dans tous les sens.OriginalL'auteur Technupe | 2011-05-20
Vous devez vous connecter pour publier un commentaire.
Votre
explode()
appel à l'aide de 9 espaces comme séparateur, mais votre fichier ne semble avoir de 5 espaces entre chaque numéro. Cela signifie que votre$currentline
être un seul élément de tableau contenant la ligne d'origine, et pas de séparer les éléments avec un certain nombre à chaque.Modifier le nombre de places dans le exploser appel, ou le changement de
qui sera divisée sur n'importe quel nombre de séquentielles des espaces.
OriginalL'auteur Marc B
Essayez ceci:
C'est peut-être défaillante sur le saut de ligne/de retour chariot à la fin de la ligne.
Si non, où est-ce que l'insert() la fonction définie? Construire une section debug que les echos ou écrit la tentative de requêtes de sorte que vous pouvez vraiment voir le problème.
OriginalL'auteur Fosco
Je voudrais vérifier qu'il n'y a pas une nouvelle ligne à la fin du fichier. Peut-être même le double de vérifier à l'intérieur de php que la lecture n'est pas vide.
OriginalL'auteur Jonathan Kuhn
$lines = rtrim(file("file.text"));
je reçois toujours la numéro non valide
ai-je raté quelque chose ou sera-ce pas jeter une erreur? fichier() retourne un tableau, pas une chaîne de caractères. rtrim() prend une chaîne de caractères.
j'ai clarifié ma réponse. si vous obtenez toujours une erreur, il est plus susceptibles de venir de quelque part d'autre.
Désolé, c'est le bon:
$lines = file("file.text", FILE_IGNORE_NEW_LINES);
OriginalL'auteur Cobra_Fast
essayez ceci :
OriginalL'auteur inoujk