Problème d'utilisation de script php en local
Résolu/Fermé
Aym
-
10 juin 2008 à 10:52
ortys4 Messages postés 254 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 26 septembre 2010 - 10 juin 2008 à 12:09
ortys4 Messages postés 254 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 26 septembre 2010 - 10 juin 2008 à 12:09
A voir également:
- Problème d'utilisation de script php en local
- Appdata local - Guide
- Notice d'utilisation - Guide
- Script vidéo youtube - Guide
- Utilisation chromecast - Guide
- Ip local - Guide
5 réponses
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
10 juin 2008 à 10:59
10 juin 2008 à 10:59
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.
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
10 juin 2008 à 11:12
10 juin 2008 à 11:12
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.
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
10 juin 2008 à 11:24
10 juin 2008 à 11:24
Voila, sa devrai le faire comme ca ! :-)
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
>
Aym
10 juin 2008 à 11:30
10 juin 2008 à 11:30
donne nous un exemple de ton fichier, il y à peu etre plus simple pour l'affichage.
Aym
>
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
10 juin 2008 à 11:38
10 juin 2008 à 11:38
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.
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
10 juin 2008 à 11:42
10 juin 2008 à 11:42
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
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
10 juin 2008 à 12:00
10 juin 2008 à 12:00
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
ortys4
Messages postés
254
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
26 septembre 2010
51
>
Aym
10 juin 2008 à 12:09
10 juin 2008 à 12:09
De rien, j'ai que ca à faire en ce moment. :-)
A+
A+
10 juin 2008 à 11:08
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.