jlmcreation
Messages postés6Date d'inscriptionsamedi 24 novembre 2007StatutMembreDernière intervention30 novembre 2007 25 nov. 2007 à 12:00
voila ce que ca affiche quand j'ouvre la page
Parse error: syntax error, unexpected T_BOOLEAN_AND in liste.php on line 14
sparko_dutos
Messages postés9Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention 1 juin 2011 24 nov. 2007 à 21:35
oui tout à fait :)
après $file != $current il suffirait de rajouter
&& in_array(array('.htm','.html'),strrchr($file,'.'))
ca devrait fonctionner ...
ca verifie que l'extension du fichier lu appartient à une liste prédéfinie (array('.htm','.html')...)
En esperant que ca t'aide :)
jlmcreation
Messages postés6Date d'inscriptionsamedi 24 novembre 2007StatutMembreDernière intervention30 novembre 2007 24 nov. 2007 à 17:07
BONJOUR
BIEN COOL CE SCRIPT , mais est ce possible de lire que les fichiers .html ou .htm ,ne pas voir les photo gif,jpeg et autres
merci
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 24 juil. 2007 à 10:59
'lut
j'y reviens
je préfère ma méthode POUR CE TYPE DE PROGRAMME s'entend !
ici ce ne sont que des if / else, plus clair, non ?
@TOZMAN2 :
lister un répertoire, je ne suis pas sûr que le temps mis à l'exécution par PHP soit plus lent avec la méthode ternaire, qu'avec le classique if / else
je persiste : ici l'utilisation de l'opérateur ternaire est plus clair.
surtout qu'une fois qu'on a compris que c'est :
$var = ( condition ) ? condition-vrai : condition-fausse;
non ?
je lance le débat interminable du "moi, je préfère ça" - "pas moi, je préfère ça" - "ça, c'est plus rapide..." etc.......
kiki
Eliays
Messages postés67Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention29 janvier 2009 20 juil. 2007 à 15:21
coucou, c'est possible de modifier ce code pour qu'il parcour aussi les dossier/sous dossier/ ect? ;)
sparko_dutos
Messages postés9Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention 1 juin 2011 17 juil. 2007 à 08:57
@ simonviei > je connnaissais également déjà glob...mais cette fonction est désactivée chez certains hébergeurs (free notamment) car elle ne tient pas compte des droits utilisateurs et permettait de naviguer dans tous les répertoires d'un site même les répertoires parents où l'utilisateur n'était pas cené aller ...
@ tozman > bien d'accord avec toi : if et else est bien plus lisible :)
En ce qui concerne le @ devant le $_GET['page'] je n'en vois pas l'utilité ^^
simonviei
Messages postés17Date d'inscriptionjeudi 13 avril 2006StatutMembreDernière intervention 1 décembre 2008 16 juil. 2007 à 12:50
une fonction tres interressrante pour lister un dossier : glob()
trabi11fr
Messages postés40Date d'inscriptionlundi 8 mars 2004StatutMembreDernière intervention10 décembre 2008 16 juil. 2007 à 11:59
Bonjour,
Question à Masterhill: je ne vois pas le '@' dont tu parles. Où le places-tu exactement? Ma queqtion peut paraitre stupide à certains, mais je suis totalement débutant en PHP (je faisais de l'ASP que je préfére nettement au niveau de la gestion des bases de données que j'ai beaucoup de mal à assimiler en PHP, mais le coût de l'hebergement....)
tozman2
Messages postés1Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention16 juillet 2007 16 juil. 2007 à 11:36
Les if...else sont plus rapide à executer par PHP... donc l'interêt de les changer reste limité. d'autant que pour modification du code un bloc if...else est bien plus explicite, surtout pour les débutants.
sparko_dutos
Messages postés9Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention 1 juin 2011 13 juil. 2007 à 12:04
Salut @ tous
kiki2sirom : je connais les operateurs ternaires, mais pour plus de lisibilité (tout le monde ne les connait pas) j'ai préféré passer par les if else...
Ensuite il est vrai que certaines lignes auraient pu être mieux codées... j'avais pas fait gaffe :p
Vais modifier cela :)
masterhill
Messages postés3Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention12 juillet 2007 12 juil. 2007 à 13:37
Salut !
Bon code, j'me suis juste permis de rajouter un pti '@' à la ligne 4 parce qu'au lancement de page sans le $_get['page'], on a le droit à un pti avertissement.
Mais sinon tout est impec 9.5/10 ;-)
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 12 juil. 2007 à 12:04
damn !!!
pas conservé mon indentation...
chaipa comment qu'on fait ici
;-)
kiki
kiki2sirom
Messages postés153Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention23 décembre 2010 12 juil. 2007 à 12:01
je pense qu'ici un peu d'opérateur ternaire ne ferait pas de mal
mais ce n'est que mon avis personnel.
vu que tu as beaucoup de if, else, du style :
25 nov. 2007 à 13:41
Warning: in_array() [function.in-array]: Wrong datatype for second argument in liste.php on line 14
Warning: in_array() [function.in-array]: Wrong datatype for second argument in liste.php on line 14
Page précédente - - Page suivante
25 nov. 2007 à 12:30
if($file != '.' && $file != '..' && $file != $current && in_array(array('.htm','.html'),strrchr($file,'.')))
ca devrait mieux marcher !!
25 nov. 2007 à 12:02
<?php
$path = '.';
$current = $_SERVER['PHP_SELF'];
if(is_numeric($_GET['page'])){
$num_page = $_GET['page'];
} else {
$num_page = 1;
}
$dh = opendir($path);
$i 0;$compteur 0;
$debut = ($num_page - 1) * 10;
$fin = $debut + 9;
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..' && $file != $current) && in_array(array('.htm','.html'),strrchr($file,'.'))
{
if ($i >= $debut && $i <= $fin) {
printf('%s. [%s/%s %s]
', $i+1, $path, $file, $file);
}
$i++;$compteur++;
}
}
closedir($dh);
echo '';
if($num_page > 1) {
echo '['.$current.'?page='.($num_page - 1).' Page précédente] - ';
} else {
echo 'Page précédente - ';
}
$div = floor($compteur / 10);
if($div == $compteur / 10){
$total_page = $div;
} else {
$total_page = $div + 1;
}
for($b = 1;$b <= $total_page;$b++){
if($b == $num_page){
echo $b.' ';
} else {
echo '['.$current.'?page='.$b.' '.$b.'] ';
}
}
if(10 * $num_page < $compteur){
echo ' - ['.$current.'?page='.($num_page+1).' Page suivante]';
} else {
echo ' - Page suivante';
}
?>
merci pour tes reponces
25 nov. 2007 à 12:00
Parse error: syntax error, unexpected T_BOOLEAN_AND in liste.php on line 14
24 nov. 2007 à 21:35
après $file != $current il suffirait de rajouter
&& in_array(array('.htm','.html'),strrchr($file,'.'))
ca devrait fonctionner ...
ca verifie que l'extension du fichier lu appartient à une liste prédéfinie (array('.htm','.html')...)
En esperant que ca t'aide :)
24 nov. 2007 à 17:07
BIEN COOL CE SCRIPT , mais est ce possible de lire que les fichiers .html ou .htm ,ne pas voir les photo gif,jpeg et autres
merci
24 juil. 2007 à 10:59
j'y reviens
je préfère ma méthode POUR CE TYPE DE PROGRAMME s'entend !
ici ce ne sont que des if / else, plus clair, non ?
@TOZMAN2 :
lister un répertoire, je ne suis pas sûr que le temps mis à l'exécution par PHP soit plus lent avec la méthode ternaire, qu'avec le classique if / else
cf cette "source" http://www.phpcs.com/codes/IF-ELSEIF-ELSE-AVEC-OPERATEUR-TERNAIRE_34335.aspx
intéressant de voir les différents avis, surtout de personnes confirmées de ce site.
je persiste : ici l'utilisation de l'opérateur ternaire est plus clair.
surtout qu'une fois qu'on a compris que c'est :
$var = ( condition ) ? condition-vrai : condition-fausse;
non ?
je lance le débat interminable du "moi, je préfère ça" - "pas moi, je préfère ça" - "ça, c'est plus rapide..." etc.......
kiki
20 juil. 2007 à 15:21
17 juil. 2007 à 08:57
@ tozman > bien d'accord avec toi : if et else est bien plus lisible :)
En ce qui concerne le @ devant le $_GET['page'] je n'en vois pas l'utilité ^^
16 juil. 2007 à 12:50
16 juil. 2007 à 11:59
Question à Masterhill: je ne vois pas le '@' dont tu parles. Où le places-tu exactement? Ma queqtion peut paraitre stupide à certains, mais je suis totalement débutant en PHP (je faisais de l'ASP que je préfére nettement au niveau de la gestion des bases de données que j'ai beaucoup de mal à assimiler en PHP, mais le coût de l'hebergement....)
16 juil. 2007 à 11:36
13 juil. 2007 à 12:04
kiki2sirom : je connais les operateurs ternaires, mais pour plus de lisibilité (tout le monde ne les connait pas) j'ai préféré passer par les if else...
Ensuite il est vrai que certaines lignes auraient pu être mieux codées... j'avais pas fait gaffe :p
Vais modifier cela :)
12 juil. 2007 à 13:37
Bon code, j'me suis juste permis de rajouter un pti '@' à la ligne 4 parce qu'au lancement de page sans le $_get['page'], on a le droit à un pti avertissement.
Mais sinon tout est impec 9.5/10 ;-)
12 juil. 2007 à 12:04
pas conservé mon indentation...
chaipa comment qu'on fait ici
;-)
kiki
12 juil. 2007 à 12:01
mais ce n'est que mon avis personnel.
vu que tu as beaucoup de if, else, du style :
if($num_page > 1) {
echo '['.$current.'?page='.($num_page - 1).' Page précédente] - ';
} else {
echo 'Page précédente - ';
}
pourrait devenir simplement :
echo ($num_page > 1?'['.$current.'?page='.($num_page - 1).' Page précédente] - ':'Page précédente - ');
tout comme :
if(10 * $num_page < $compteur){
echo ' - ['.$current.'?page='.($num_page+1).' Page suivante]';
} else {
echo ' - Page suivante';
}
pourrait devenir :
echo (10 * $num_page < $compteur?' - ['.$current.'?page='.($num_page+1).' Page suivante]':' - Page suivante');
* de plus:
if($div == $compteur / 10){
$total_page = $div;
} else {
$total_page = $div + 1;
}
for($b = 1;$b <= $total_page;$b++){
pourrait aisément devenir :
if ($div != $compteur / 10)
$div++;
for($b = 1;$b <= $div;$b++){
ton $total_page n'est pas très utile ici !
* de plus:
if(is_numeric($_GET['page'])){
$num_page = $_GET['page'];
} else {
$num_page = 1;
}
deviendrait :
$num_page=(is_numeric($_GET['page'])?$_GET['page']:1);
* tout comme :
for($b = 1;$b <= $div;$b++){
if($b == $num_page){
echo $b.' ';
} else {
echo '['.$current.'?page='.$b.' '.$b.'] ';
}
}
deviendrait :
for($b = 1;$b <= $div;$b++){
echo ($b == $num_page?$b.' ':'['.$current.'?page='.$b.' '.$b.'] ');
}
j'aime beaucoup l'opérateur ternaire, quand ça reste dans le domaine du lisible, soit if / else ou if / elseif / else
47 lignes au final devient 27 lignes :
<?php
$path = '.';
$current = $_SERVER['PHP_SELF'];
$num_page=(is_numeric($_GET['page'])?$_GET['page']:1);
$dh = opendir($path);
$i 0;$compteur 0;
$debut = ($num_page - 1) * 10;
$fin = $debut + 9;
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..' && $file != $current) {
if ($i >= $debut && $i <= $fin) {
printf('%s. [%s/%s %s]
', $i+1, $path, $file, $file);
}
$i++;$compteur++;
}
}
closedir($dh);
echo '';
echo ($num_page > 1?'['.$current.'?page='.($num_page - 1).' Page précédente] - ':'Page précédente - ');
$div = floor($compteur / 10);
if ($div != $compteur / 10)
$div++;
for($b = 1;$b <= $div;$b++)
echo ($b == $num_page?$b.' ':'['.$current.'?page='.$b.' '.$b.'] ');
echo (10 * $num_page < $compteur?' - ['.$current.'?page='.($num_page+1).' Page suivante]':' - Page suivante');
?>
c'est quand même intéressant, non ?
allez
kiki
10 juil. 2007 à 18:34