Lien s'affiche mais non cliquable [Résolu]

Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
- - Dernière réponse : erdoganak
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
- 25 août 2009 à 15:19
Bonjour,

Comme l'indique le titre du sujet je dispose de document dans un répertoire que j'affiche sous forme de lien ceci dit il ne sont pas cliquable.

Dois-je utilisé un fopen() pour que ca fonctionne?



<?php
$current_dir = "C:\\wamp\\www\\test1\"; //a remplacer $_post['rep']
$dir = opendir($current_dir);
while ($file = readdir($dir))
{
if (is_file($current_dir.$file))
{
if (($file != "." ) && ($file != ".." ))
{// Récupération de l'extension du fichier
$format=strrchr($file,".pdf" || ".doc" );
if ($format == ".pdf" || ".doc" )// Vérification du format
{
echo "".$file."
";
}
}
}
}
closedir ($dir);
?>


Merci,
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
3
Merci
ben admettons que ton fichier php se trouve là:

"C:\wamp\www\test1\tapage.php"...


Et tu a là dedans un dossier qui contiens tes fichiers, le chemin absolu c'est:

"C:\wamp\www\test1\le_dossier"


Alors que le chemin relatif c'est

"./le_dossier/" (et oui ce sont des slashs puisque les navigateurs et PHP se tiennent aux normes Unix/Linux pour les chemins de fichier...)

Un liens qui était par exemple (dans ton exemple):
[C:\wamp\www\test1\le_dossier\Nom_du_fichier.pdf Nom_du_fichier.pdf]


deviens
[./le_dossier/Nom_du_fichier.pdf Nom_du_fichier.pdf]

(puisque ton navigateur se "trouve" déjà dans "C:\wamp\www\test1\" par le biais de la page "C:\wamp\www\test1\tapage.php"

Le tout a l'avantage que tu peux envoyer le tout sur n'importe quel serveur on-line par la suite, sans devoir changer ton code...

A ce propos là... ça marche aussi pour les paramètres que tu passe à opendir()

Bonne aprem' ;)

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 134 internautes nous ont dit merci ce mois-ci

Commenter la réponse de pysco68
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
0
Merci
echo '[C:\wamp\www\test1\ '.$file.']
';
....

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
0
Merci
et éventuellement:

echo '[C:\wamp\www\test1\'.$file.' '.$file.']
';

pour pas tomber sur une page vide mais sur le fichier......

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
0
Merci
Salut merci pour ta rapidité, ceci dit avec ce que tu m'as conseillé j'obtiens cette erreur si je met des \ au lieu de \\

Parse error: syntax error, unexpected '"', expecting ',' or ';' in C:\wamp\www\debut\affichagelink.php on line 13



si jamais je code avec
C:\\wamp\\www\\test1\\ alors

j'obtiens mes liens et seul le .docx est enregistrable.
Commenter la réponse de erdoganak
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
0
Merci
effectivement j'ai loupé un petit truc...

echo '[C:\wamp\www\test1\\'.$file.' '.$file.']
';

Le backslash souligné évite que le second backslash "échappe" le guillemet suivant juste derrière...

Parcontre je n'ai pas compris ta dernière phrase...


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
0
Merci
Désolé j'ai voulu dire que si je fais

comme ceci
echo '[C:\\wamp\\www\\test1\\'.$file.' '.$file.']

j'obtiens une liste de mes fichiers sous forme de lien, ceci dit seul le fichier avec l'extension .docx est cliquable et enregistrable (sur le bureau, répertoire ...).


sinon

echo '[C:\\wamp\\www\\test1\\'.$file.' '.$file.']

et

echo '[C:\wamp\www\test1\\'.$file.' '.$file.']
';


me donne exactement le même résultat.
(c-a-d cliquable et enregistrable )
Commenter la réponse de erdoganak
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
0
Merci
oui mais avec ta solution tu est obligé de doubler tous les slashs et de faire des opérations d'interprétation supplémentaires (chaque backslash en plus est une opération dans ton cas...) enfin bref, le résultat est là, mais bon... et puis si tu veux ne pas t'occasionner trops d'ennuis, je te conseille vivement de passer a des liens relatifs (au dossier ou se "trouve" ta page php pour le navigateur du visiteur...)


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Commenter la réponse de pysco68
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
0
Merci
Tu peux me montrer un exemple, comment tu fais pour les liens relatifs que tu mentionnes dans ton message merci .
Commenter la réponse de erdoganak
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
0
Merci
Merci bien
Commenter la réponse de erdoganak