8792 sujets

Développement web côté serveur, CMS

Bonsoir,

Toujours pour le développement du même site Web...

Jusque là, tout va bien ! J'envoie la choré au format HTML dans le dossier adéquat, puis une fonction PHP fait un listing de ce même dossier sur la page

Maintenant, j'ai deux questions :

1- Comment masquer l'extension des fichiers ? (donc "modele.html" donnerait "modele")

2- Comment mettre en forme le titre de telle sorte que "page.html" donne "Page" ? (Pour les accents on s'en fout, les chorés sont très souvent faites par des ricains, qui n'utilisent pas de caractères accentués !)

J'ai voulu faire quelques recherches sur Google, mais j'dois avouer que j'sais pas vraiment quoi taper Smiley confused


Bref, merci d'avance à ceux qui pourraient m'aider Smiley smile
Modifié par SolykZ (08 Sep 2007 - 00:06)
Bonjour,

Masquer les extensions :
$nomfichier = preg_replace("#^(.*)\\..*?$#", "$1", $nomfichier);

Ou alors :

$index = strpos($nomfichier, '.');
if ($index) { $nomfichier = substr($nomfichier, 0, $index); }

Ou encore, si tu es sûr de n'avoir que des fichiers avec l'extension .html :
$nomfichier = substr($nomfichier, 0, -5);

Attention, la deuxième méthode ne fonctionne pas si le nom du fichier contient un point, auquel cas il est coupé à ce point.

Pour remplacer des _ par des espaces, il s'agit d'un simple str_replace :
$nomfichier = str_replace('_', ' ', $nomfichier);
Hip,

1) substr() et strrpos()
2) ucfirst() + str_replace()

Pas de regex sur ce coup !!! Smiley cligne
EDIT : erronée
Modifié par Bison (15 Nov 2006 - 05:56)
Uw, je dois dire que je ne comprends pas trop où placer ces instructions...

				<?
				$rep=opendir('./choregraphies/fichestechniques/');
				while ($file = readdir($rep))
				{
					if($file != '..' && $file !='.' && $file !='')
					{
						echo "<a href=\"./choregraphies/fichestechniques/$file\" onclick=\"window.open(this.href,'_blank'); return false\">$file</a>";
						echo "<br />";
					}
				}
				closedir($rep);
				clearstatcache();
				?>


Si quelqu'un pouvait m'expliquer dans les détails, ce serait superbe Smiley smile
C'est ici:

echo "<a href=\"./choregraphies/fichestechniques/$file\" onclick=\"window.open(this.href,'_blank'); return false\">$file</a>";


que tu va devoir faire joujou avec les fonctions dites précédemment:
- substr()
- strrpos()
- ucfirst()
- str_replace()

Je t'aide un peu c'est la variable $file dans ton code que tu devra bidouiller avec les fonctions.
Smiley cligne

Avec un peu de réflection, et les exemples des fonctions fourni, tu devrai y arriver Smiley biggrin
Modifié par chpego (15 Nov 2006 - 13:35)
Bah écoute, j'viens de tester quelques trucs et soit ça donne rien, soit ça remplace ma liste par des "1"... J'y connais presque rien en PHP en fait...

Bon, j'vais voir si j'trouve pas un exemple tout fait et j'verrai comment ça fonctionne...
Code pour lister :
<?php
$dos='dossier';
if ($lister = opendir($dos)) {
   while (false !== ($file = readdir($lister))) {
       if ($file != '.' && $file != '..') {
$lecture=substr($file,0,strrpos($file,'.'));
echo '<a href="./choregraphies/fichestechniques/',$file,'" onclick="window.open(this.href,\'_blank\'); return false">',str_replace('_',' ',$lecture),'<br />';
       }
   }
   closedir($lister);
}
?> 
Bison a écrit :
Code pour lister :
<?php
$dos='dossier';
if ($lister = opendir($dos)) {
   while (false !== ($file = readdir($lister))) {
       if ($file != '.' && $file != '..') {
$lecture=substr($file,0,strrpos($file,'.'));
echo '<a href="./choregraphies/fichestechniques/',$file,'" onclick="window.open(this.href,\'_blank\'); return false">',str_replace('_',' ',$lecture),'<br />';
       }
   }
   closedir($lister);
}
?> 


Smiley eek Smiley eek Smiley eek

Euh... J'avais essayé en plaçant la ligne exactement au même endroit, sans succès !

Pour l'explication du truc, si je comprends bien, les modifications de la variable $file apparaitront lors de l'echo de la variable $lecture ?

Donc je pense que je devais créer une autre variable et afficher celle-ci en lieu et place de $file... Non ?


En tout cas, merci beaucoup ! Smiley smile