Problème d'utilisation de script php en local
Résolu
Aym
-
ortys4 Messages postés 254 Date d'inscription Statut Membre Dernière intervention -
ortys4 Messages postés 254 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde.
Voilà je suis un peu embêté.
Je suis un pur novice et je tente d'utiliser un script php qui par le biais d'un fichier .csv va gentiment me remplir une base de données mysql sous phpmyadmin en localhost avec un serveur wamp.
J'ai bien renseigné les identifiants de la base, à savoir $server, $username, $password, $database.
Seulement j'ai des doutes concernant le path du fichier .csv
Voilà le bout de code incriminé:
function read_csv( $filename, $separateur) // transfert le fichier dans un tableau
{
if ( $FILE=fopen($filename,"Test.csv") ) // ouverture du fichier
{
while ($ARRAY[]=fgetcsv($FILE,1024,$separateur)); // lire ligne par ligne et coupe colonne par colonne
fclose($FILE) ; // ferme le fichier
array_pop($ARRAY); // efface la derniere ligne
return $ARRAY ; // renvoie le tableau
}
}
$pathFic = $HTTP_GET_VARS['C:\wamp\www\NomDeLaBase\Test.csv'];
$ARRAY=read_csv($pathFic,"Test.csv"); // lit le fichier
Alors première question: est-ce que j'ai bien tout renseigné partout, est-ce que j'aurais pas confondu le path et le nom à un endroit ?
Seconde question: est-ce que la syntaxe suivante d'appel du script est correcte ?
http://localhost/NomDuScript.php?path=Test.csv
Merci d'avance pour vos réponses!
Voilà je suis un peu embêté.
Je suis un pur novice et je tente d'utiliser un script php qui par le biais d'un fichier .csv va gentiment me remplir une base de données mysql sous phpmyadmin en localhost avec un serveur wamp.
J'ai bien renseigné les identifiants de la base, à savoir $server, $username, $password, $database.
Seulement j'ai des doutes concernant le path du fichier .csv
Voilà le bout de code incriminé:
function read_csv( $filename, $separateur) // transfert le fichier dans un tableau
{
if ( $FILE=fopen($filename,"Test.csv") ) // ouverture du fichier
{
while ($ARRAY[]=fgetcsv($FILE,1024,$separateur)); // lire ligne par ligne et coupe colonne par colonne
fclose($FILE) ; // ferme le fichier
array_pop($ARRAY); // efface la derniere ligne
return $ARRAY ; // renvoie le tableau
}
}
$pathFic = $HTTP_GET_VARS['C:\wamp\www\NomDeLaBase\Test.csv'];
$ARRAY=read_csv($pathFic,"Test.csv"); // lit le fichier
Alors première question: est-ce que j'ai bien tout renseigné partout, est-ce que j'aurais pas confondu le path et le nom à un endroit ?
Seconde question: est-ce que la syntaxe suivante d'appel du script est correcte ?
http://localhost/NomDuScript.php?path=Test.csv
Merci d'avance pour vos réponses!
A voir également:
- Problème d'utilisation de script php en local
- Appdata local - Guide
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Script vidéo youtube - Guide
- Ip local - Guide
5 réponses
Salut, déjà la sa pause problème. En php le caractère \ annule celui qui le suit, ce qui veut dire que tu dois écrire les chemins de tel manière :
$pathFic = $HTTP_GET_VARS['C:\\wamp\\www\\NomDeLaBase\\Test.csv'];
ensuite cette adresse http://localhost/NomDuScript.php?path=Test.csv ne nous est pas accessible car elle est en interne sur ton ordi. Tu peut si tu veut nous montrer un exemple de ligne.
$pathFic = $HTTP_GET_VARS['C:\\wamp\\www\\NomDeLaBase\\Test.csv'];
ensuite cette adresse http://localhost/NomDuScript.php?path=Test.csv ne nous est pas accessible car elle est en interne sur ton ordi. Tu peut si tu veut nous montrer un exemple de ligne.
En relisant ya encore une erreur :
la declaration de ta fonction : function read_csv( $filename, $separateur)
elle attent en parametre un chemin pour le fichier, et un séparateur. le séparateur par default du csv c ";", donc lors de son appel :
$ARRAY=read_csv($pathFic,";"); // lit le fichier
et là tt devrai etre ok
la declaration de ta fonction : function read_csv( $filename, $separateur)
elle attent en parametre un chemin pour le fichier, et un séparateur. le séparateur par default du csv c ";", donc lors de son appel :
$ARRAY=read_csv($pathFic,";"); // lit le fichier
et là tt devrai etre ok
Ah ben oui merci bcp en effet, quand je disais que je confonds tout...
Donc au final on se retrouve avec quelque chose de tout à fait correct dans ce gout là:
function read_csv( $filename, $separateur) // transfert le fichier dans un tableau
{
if ( $FILE=fopen($filename,"Test.csv") ) // ouverture du fichier
{
while ($ARRAY[]=fgetcsv($FILE,1024,$separateur)); // lire ligne par ligne et coupe colonne par colonne
fclose($FILE) ; // ferme le fichier
array_pop($ARRAY); // efface la derniere ligne
return $ARRAY ; // renvoie le tableau
}
}
$pathFic = $HTTP_GET_VARS['C:\\wamp\\www\\nice-antiques\\Test.csv'];
$ARRAY=read_csv($pathFic,";"); // lit le fichier
Cependant lorsque j'appelle le script il ne se passe rien. J'en déduis que ma syntaxe d'appel est bancale. Ai-je bien utilisé le "?", ai-je fait une erreur de chemin, est-ce que j'ai encore raté un truc évident ?
http://localhost/NomDuScript.php?path=C:\wamp\www\NomDeLaBase\Test.csv
Bien entendu mon script ainsi que mon fichier Test.csv sont dans le répertoire NomDeLaBase.
Donc au final on se retrouve avec quelque chose de tout à fait correct dans ce gout là:
function read_csv( $filename, $separateur) // transfert le fichier dans un tableau
{
if ( $FILE=fopen($filename,"Test.csv") ) // ouverture du fichier
{
while ($ARRAY[]=fgetcsv($FILE,1024,$separateur)); // lire ligne par ligne et coupe colonne par colonne
fclose($FILE) ; // ferme le fichier
array_pop($ARRAY); // efface la derniere ligne
return $ARRAY ; // renvoie le tableau
}
}
$pathFic = $HTTP_GET_VARS['C:\\wamp\\www\\nice-antiques\\Test.csv'];
$ARRAY=read_csv($pathFic,";"); // lit le fichier
Cependant lorsque j'appelle le script il ne se passe rien. J'en déduis que ma syntaxe d'appel est bancale. Ai-je bien utilisé le "?", ai-je fait une erreur de chemin, est-ce que j'ai encore raté un truc évident ?
http://localhost/NomDuScript.php?path=C:\wamp\www\NomDeLaBase\Test.csv
Bien entendu mon script ainsi que mon fichier Test.csv sont dans le répertoire NomDeLaBase.
Voila, sa devrai le faire comme ca ! :-)
Alors pour l'instant justement c'est un fichier test d'une seule occurrence histoire de ne pas en faire des caisses tant que ça marche pas.
Il a cette structure:
|Champ 0 | Champ 1 |Champ 2 |Champ 3 |Champ 4 |Champ 5 |
|Catégorie |Nom du produit |Description |Nom de l'image |Code à Barres |Prix |
J'en ai environ 2000 à rentrer comme ça.
Le souci c'est que c'est sensé fonctionner (je l'ai vu de mes petits yeux meurtris), c'est vraiment à une couille près.
Soit j'ai encore rentré des paramètres débiles dans le code mais apparemment d'après les réponses il a fini par être bon, soit mon appel est pas conforme.
Il a cette structure:
|Champ 0 | Champ 1 |Champ 2 |Champ 3 |Champ 4 |Champ 5 |
|Catégorie |Nom du produit |Description |Nom de l'image |Code à Barres |Prix |
J'en ai environ 2000 à rentrer comme ça.
Le souci c'est que c'est sensé fonctionner (je l'ai vu de mes petits yeux meurtris), c'est vraiment à une couille près.
Soit j'ai encore rentré des paramètres débiles dans le code mais apparemment d'après les réponses il a fini par être bon, soit mon appel est pas conforme.
Ton séparateur c'est un "|" ? tu la bien remplacé dans le code dans ce cas :
$ARRAY=read_csv($pathFic,"|");
$ARRAY=read_csv($pathFic,"|");
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait ta fonction en pas bonne ! En voici une qui marche (tiré de http://www.manuelphp.com/php/function.fgetcsv.php
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
Avec ca tu devrai t'en sortir
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
Avec ca tu devrai t'en sortir
Ensuite oui je voulais pas montrer ce que ça donne avec le lien d'appel du script, juste savoir si j'avais pas fait d'erreur grossière de syntaxe, comme par exemple celle que tu as relevée^^
J'ai globalement peur d'avoir oublié de renseigner des champs dans le script, d'avoir confondu path et nom, voire même d'en avoir trop mis vu que j'avais cru comprendre que le path du .csv était relatif donc qu'on avait limite pas besoin de mettre le chemin complet.