par
hakazizi » 02 mars 2015, 23:37
merci de ta réponse il est vrai que cela manque de détail.
je voudrais modifier tous cela de façon optimisé.
merci.
je récupère certaine photo d'un répertoire.
$tableau_photo=array(); // on créer le tableau qui contiendra les photos
$url_repertoire_photo=preg_replace("@([a-z0-9\-]{1,50})([\.]{1})([jpg]{3})@","",$grande_image);
$repertoire=opendir("../$url_repertoire_photo"); // on ouvre le répertoire qui contient les photos
while($photo=readdir($repertoire)){ // on fait une boucle sur le répertoire
$urlphoto=str_replace(array($url_repertoire_photo,'.jpg'),'',$grande_image);
if(strstr($photo,$urlphoto)){ // on verifie les mots clés
$tableau_photo[]=$photo;} // on insère les photos dans le tableau
}closedir(); // on ferme le repertoire qui contient les photos
$aPoints = array('profile' => 1, 'dos' => 2);
$bPoints = array('zoom' => 1,'haut' => 2, 'centre' => 3 , 'bas' => 4);
$classement = array();
foreach($tableau_photo as $v) {
$point = 0;
$point1 = 0;
foreach($aPoints as $key => $val) {
$point += strstr($v, $key) ? $aPoints[$key] : 0;
}
foreach($bPoints as $key => $vale) {
$point1 += strstr($v, $key) ? $bPoints[$key] : 0;
}
$classement[$point][$point1]= $v;
}
@ksort($classement);
@ksort($classement[0]);
@ksort($classement[1]);
@ksort($classement[2]);
$classement=array_filter($classement);
$nb_photo=count($classement); // on compte les photos
if($nb_photo==0){ // on vérifie que le tableau n'est pas vide
echo'erreur inconnue merci de prévenir un administrateur<br /><a href="'.$url.'contact.php">contacter un administrateur</a><br />';exit();} // si il est vide on affiche un message d'erreur et on arrête le script.
si je n'ai qu'une seul photo je ne charge pas le fichier javascript. sinon je le charge.
2ème point important si je n'ai pas de variable nb_photo je vérifie si il y a un fichier javascript.
je vérifie si le fichier php ne se trouve pas dans un répertoire.
mes répertoires physique ne vont que sur un seul niveau.
if(!isset($nb_photo) OR $nb_photo>1){ // on vérifie que la variable nb_photo n'existe pas ou bien qu'elle est supérieur a 1
$filename=str_replace('.php','.js','js'.$_SERVER["SCRIPT_NAME"]); // on remplace l'extension php le l'emplacement physique
if(!file_exists($filename)){//si celui ci n'existe pas on vérifie que la page php n'est pas dans un répertoire
$filename=preg_replace('#/([a-z]{0,50})/#','/',$filename);
$filename='../'.$filename;//si il est dans un répertoire on revient à la racine
}
if(file_exists($filename)){ // si le fichier js existe on le charge
$filename=str_replace(array('.js','../'),array('-'.filemtime($filename),''),$filename);
?>
<script type="text/javascript" src="<?php echo "$url$filename:".intval($nb_photo); ?>.js"></script>
<?php }} ?>
en espérant avoir été clair je vous remercie de votre aide.
PS. le code fonctionne mais me parait lourd.
merci de ta réponse il est vrai que cela manque de détail.
je voudrais modifier tous cela de façon optimisé.
merci.
je récupère certaine photo d'un répertoire.
[php]$tableau_photo=array(); // on créer le tableau qui contiendra les photos
$url_repertoire_photo=preg_replace("@([a-z0-9\-]{1,50})([\.]{1})([jpg]{3})@","",$grande_image);
$repertoire=opendir("../$url_repertoire_photo"); // on ouvre le répertoire qui contient les photos
while($photo=readdir($repertoire)){ // on fait une boucle sur le répertoire
$urlphoto=str_replace(array($url_repertoire_photo,'.jpg'),'',$grande_image);
if(strstr($photo,$urlphoto)){ // on verifie les mots clés
$tableau_photo[]=$photo;} // on insère les photos dans le tableau
}closedir(); // on ferme le repertoire qui contient les photos
$aPoints = array('profile' => 1, 'dos' => 2);
$bPoints = array('zoom' => 1,'haut' => 2, 'centre' => 3 , 'bas' => 4);
$classement = array();
foreach($tableau_photo as $v) {
$point = 0;
$point1 = 0;
foreach($aPoints as $key => $val) {
$point += strstr($v, $key) ? $aPoints[$key] : 0;
}
foreach($bPoints as $key => $vale) {
$point1 += strstr($v, $key) ? $bPoints[$key] : 0;
}
$classement[$point][$point1]= $v;
}
@ksort($classement);
@ksort($classement[0]);
@ksort($classement[1]);
@ksort($classement[2]);
$classement=array_filter($classement);
$nb_photo=count($classement); // on compte les photos
if($nb_photo==0){ // on vérifie que le tableau n'est pas vide
echo'erreur inconnue merci de prévenir un administrateur<br /><a href="'.$url.'contact.php">contacter un administrateur</a><br />';exit();} // si il est vide on affiche un message d'erreur et on arrête le script.[/php]
si je n'ai qu'une seul photo je ne charge pas le fichier javascript. sinon je le charge.
2ème point important si je n'ai pas de variable nb_photo je vérifie si il y a un fichier javascript.
je vérifie si le fichier php ne se trouve pas dans un répertoire.
mes répertoires physique ne vont que sur un seul niveau.
[php]if(!isset($nb_photo) OR $nb_photo>1){ // on vérifie que la variable nb_photo n'existe pas ou bien qu'elle est supérieur a 1
$filename=str_replace('.php','.js','js'.$_SERVER["SCRIPT_NAME"]); // on remplace l'extension php le l'emplacement physique
if(!file_exists($filename)){//si celui ci n'existe pas on vérifie que la page php n'est pas dans un répertoire
$filename=preg_replace('#/([a-z]{0,50})/#','/',$filename);
$filename='../'.$filename;//si il est dans un répertoire on revient à la racine
}
if(file_exists($filename)){ // si le fichier js existe on le charge
$filename=str_replace(array('.js','../'),array('-'.filemtime($filename),''),$filename);
?>
<script type="text/javascript" src="<?php echo "$url$filename:".intval($nb_photo); ?>.js"></script>
<?php }} ?>[/php]
en espérant avoir été clair je vous remercie de votre aide.
PS. le code fonctionne mais me parait lourd.