Trouver un fichier - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Trouver un fichier (/showthread.php?tid=2773) |
Trouver un fichier - phenix - 16-07-2008 Hello tout le monde, Je voudrais savoir si quelqu'un connaît une méthode pour ouvrir un fichier à partir de sont nom ou de sont chemin. En gros qu'il soit capable de retrouver un fichier sur le serveur par lui même si on lui passe pas le chemin. Sa peut être extrêmement pratique quand on ouvre des fichiers dans des fonctions. Phenix RE: Trouver un fichier - Thumsoul - 16-07-2008 En PHP, tu as la méthode fopen (http://fr.php.net/fopen), qui permet d'ouvrir un fichier et de le lire/modifier (si tu as les droits dessus). Mais il faut lui fournir en paramètre le chemin d'accès du fichier. RE: Trouver un fichier - phenix - 16-07-2008 Citation :Mais il faut lui fournir en paramètre le chemin d'accès du fichier. C'est justement sa le problème Je t'explique avec un exemple: Code PHP :
Jusque la c'est pas sorcier. Mais si tu exécute ta fonction dans un autre dossier, tu te prend une erreur car il trouve pas le fichier... Moi je voudrais qu'il retrouve le fichier quelque soit l'endroit ou j'exécute la fonction. Phenix RE: Trouver un fichier - Thumsoul - 16-07-2008 Mets le chemin absolu : Code PHP :
RE: Trouver un fichier - Ruz - 16-07-2008 Existe-t-il une fonction PHP qui liste les répertoires existants dans le dossier courant? Si oui: un peu de récursivité pour scanner tout le serveur jusqu'à trouver Si non: ben, euh, je ne sais pas, sorry... RE: Trouver un fichier - phenix - 16-07-2008 Ouais pas con, on peut mettre des URL. J'y avais pas pensé. RE: Trouver un fichier - Nambew - 16-07-2008 Je crois pas que ça soit une bonne idée d'inclure un fichier via le nom de domaine. Tu peux très bien définir une constante avec le chemin de base de tes fichiers. Tu peux aussi dans la configuration de PHP définir des répertoires qui seront vérifier lors d'inclusion de fichiers. Voir include_path dans le php.ini RE: Trouver un fichier - phenix - 17-07-2008 Citation :Tu peux très bien définir une constante avec le chemin de base de tes fichiers. C'est un peu chinois, tu veux bien détailler un peu ? En fait le vocabulaire est flou, c'est quoi une constante ? Citation :Tu peux aussi dans la configuration de PHP définir des répertoires qui seront vérifier lors d'inclusion de fichiers. Voir include_path dans le php.ini Difficile sur un mutualisé non ? Phenix RE: Trouver un fichier - Nambew - 17-07-2008 Pour la constante, il faut regarder du côté de la function define. Le but est de définir une constante qui contient l'emplacement du répertoire de base et de réutiliser cette constante pour chaque inclusion. Certains hébergeur laisse la possibilité de modifier certains paramètres du php.ini dans des fichiers .htaccess, donc faut évidemment voir avec son hébergeur. Pour la constante, si je prends l'exemple de AMFPHP, ça donne ça. Code PHP :
RE: Trouver un fichier - QuentinC - 20-07-2008 Citation :fopen('http://www.tonsite.com/data/tonfichier.txt');Ne jamais ouvrir ou inclure un fichier via l'URL, stop aux légendes urbaines. Php perdra un temps fou, car il va se connecter au DNS, demander l'IP de ton NDD, se connecter à ton propre serveur et demander le fichier par HTTP. Ton serveur va lire le fichier, l'envoyer à php, etc, etc... les communication réseau ça coûte très cher en temps, surtout quand c'est inutile. Sinon vous demandiez ce qu'il y avait pour parcourir des dossiers : il y a deux solutions, soit glob, soit opendir/readdir/closedir (cf php.net). Mais bon de toute façon scanner plein de dossier pour voir si un fichier s'y trouve c'est totalement contre-productif. Pas besoin de définir de constante pour un dossier racine non plus car il y en a déjà une : $_SERVER['DOCUMENT_ROOT'], elle indique le chemin racine du dossier web (p.ex. /home/var/www ou c:\wamp\www) ne pas hésiter à en abuser car c'est vrai qu'elle est pratique. Sinon en deuxième solution on peut aussi utiliser la fonction chdir pour changer de dossier en cours. |