JMKPROD
Messages postés68Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention15 septembre 2007
-
5 sept. 2007 à 02:20
JMKPROD
Messages postés68Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention15 septembre 2007
-
5 sept. 2007 à 15:26
Je réalise un gestionnaire de mp3 couplé à une base mysql pour gérer mes milliers de mp3. Grace aux nombreux bouts de code que j'ai pioché sur phpcs.com, je peux lister mes dossiers en récursivité, recupérer ma liste (extension "mp3" et m3u") jusque là pas de problème. Cependant quand il existe un apostrophe dans le nom du dossier ("Oliver N'GOMA") celui-ci est "zappé", de même pour les noms de fichier (Kassav'-Zouk la.mp3).
Remplacer " ' " par " \' " ne donne rien, qu'elle solution adoptée?
Aider moi je ne veux pas avoir à renommer les dossiers et fichiers en question.
JMKPROD
Messages postés68Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention15 septembre 2007 5 sept. 2007 à 12:12
Bonjour,
Voici la fontion qui stocke dans la base le chemin des dossiers.
$i c'est pour le trie,
$n c'est pour réaliser une arborescence par la suite
function dos_mysql($rep) // Fonction pour lister les tous les dossiers dans mysql
{
$dir = opendir($rep);
global $id; while (false !($nom_dos readdir($dir))) // Boucle sur tout ce qu'il y a dans le rertoire
{
if ($nom_dos !="." && $nom_dos != "..")
{
if(is_dir($rep."[file://\\".$nom_dos \".$nom_dos])) // Si c'est un dossier
{
$id++;
$chem=$rep."[file://\\".$nom_dos \".$nom_dos];
$chem_mysql=str_replace("[file://\\","/",$chem \","/",$chem]);
//On recupere le nb de segment du chemin
$cut = explode("/", $chem_mysql);
$n=count($cut);
mysql_query("INSERT INTO dos_temp(id,chem,dos,n) VALUES ($id,'$chem_mysql','$nom_dos',$n)");
dos_mysql($rep."[file://\\".$nom_dos \".$nom_dos]);
}
}
}
closedir($dir);
}
Si il y a 1 apostrophe dans $rep il n'est pas traité dans est absent dans la base.
Pour les fichiers je me suis mal expliqué, je les récupere bien malgré l'apostrophe mais je ne peux pas les ouvrir avec media player.
voici le code (Javascript!!)
function lire(mp3_file)
{
document.all.mediaplayer.innerHTML='';
}
Rien si il y a 1 apostrophe dans mp3_file.
(Grand merci aux auteurs qui m'ont inspiré ces fonctions, ils se reconnaitront)
JMKPROD
Messages postés68Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention15 septembre 2007 5 sept. 2007 à 14:20
Merci beaucoup pour ta réponse, la solution est surement là mais la tienne ne fonctionne pas.
Le probleme se situe avant l'insertion dans mysql.
Si j'utilise "addslashes" dans "$rep."[file://%22.$nom_dos/ \".$nom_dos]", l'apostrophe est bien précédé d'un "" mais celui-ci est reconnu comme un séparateur dans le chemin du dossier et j'ai l'erreur "failed to open dir".
HELP!!!!!!
JMKPROD
Vous n’avez pas trouvé la réponse que vous recherchez ?
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 5 sept. 2007 à 14:22
Le addslashes, c'est juste pour l'insertion dans MySQL...
Et, éventuellement, stripslashes, te permettra de faire l'inverse quand tu récupères les données...
@++
R@f
La boîte à bouts de codes "On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
JMKPROD
Messages postés68Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention15 septembre 2007 5 sept. 2007 à 15:26
Je confirme que pour qu'il y ait insertion dans la base il faut que le dossier en question soit "reconnu" avant par : " $dir = opendir($rep); ".
si $rep= "Z:\JMK\labnet\gestion-mp3\zik\dossier1" ---> OK
si $rep= "Z:\JMK\labnet\gestion-mp3\zik\dossier'1" ---> dossier'1 est ignoré dans la recursivité.
si $rep=addslashes("Z:\JMK\labnet\gestion-mp3\zik\dossier1") ---> Fatal error: Maximum execution time of 30 seconds exceeded in //..........\jmk\labnet\gestion-mp3-050907\fonc_dos.php on line 29.
Dans "fonc_dos.php " j'ai +sieurs fonctions dont "dos_mysql($rep)".
Je ne comprend plus rien!
Question plus simple: Comment faire la fonction "dos_mysql($rep)" fonctionner avec 1 apostrophe dans $rep???????????????