Aller au contenu
reg34000

includes aléatoires

Noter ce sujet :

Recommended Posts

remplace cette ligne

$fichier_cache = $rep_cache . date("Ymd") . 'php';

par ton truc d'addition ;) (moi perso je trouve que cela fait beaucoup de calcul pour pas grand chose, tu peux simplement attacher le nom du repertoire dans le nom du fichier)

Partager ce message


Lien à poster
Partager sur d’autres sites

ex:

$fichier_cache = $rep_cache . date("Ymd") . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php';

Partager ce message


Lien à poster
Partager sur d’autres sites

ok si j'attache le njom du repertoire a la date pour crée le fichier cache

ca veux dire que si j'ai deux pages identiques avec le meme script

si j'en affiche une a partir du dossier /machin/abcd

et l'autre a partir du dossier /machin/bcde

j'obien deux pages différentes pour une journée complette

et lelendemain j'ai denouveau 2 autres pages

????

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut est il possible de rajouter une variable nombre de jour

$nbjours

qui permet de relancer le script que tout les N jours.

Modifié par reg34000

Partager ce message


Lien à poster
Partager sur d’autres sites

tu peux faire un truc du genre:

$id_jour = date("z") % $nbjours;
$fichier_cache = $rep_cache . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php';
if(!file_exists($fichier_cache) || (file_exists($fichier_cache)&& ($id_jour==0))) {

comme ca tu n'as pas besoin de supprimer les fichiers de caches (toujours le meme nom) et ils sont mis à jour tous les $nbjours

Partager ce message


Lien à poster
Partager sur d’autres sites

ok merci je teste cela lundi car la j'ai pas acces a mon hebergeur pour tester en php

je voulais vraiment te remercier pour tous tes conseils.

je vais faire un tour sur ton site.

est ce que je peux abuser en posant une derniere question lol

Partager ce message


Lien à poster
Partager sur d’autres sites

est il possible de mettre une derniere variable

$nbmodif = 1

qui permet de définir par rapport aux includes précedentes le nombre d'includes a modifier au hazard.

par exemple

aujoud'hui on tire 4 includes a afficher pendant 10 jours

et au boud de 10 jours ont fais un nouveau tirage mais on ne remplace que ($nbmodif = 1) une include et bien sur au hazad parmis les 4

10 jours plus tard on recommence ont fais un nouveau tirage mais on ne remplace que ($nbmodif = 1) une include et bien sur au hazad parmis les 4 (des 10 jours d'avant)

10 jours plus tard on recommence ont fais un nouveau tirage mais on ne remplace que ($nbmodif = 1) une include et bien sur au hazad parmis les 4 (des 10 jours d'avant)....

Partager ce message


Lien à poster
Partager sur d’autres sites

[HS]oui tout est possible. Il vaut mieux pour cela exprimer ses besoins dans leur ensemble. Il vaut mieux demander une Ferrari et obtenir une BMW que de commencer par une voiture à roulette et de vouloir y ajouter une moteur, des freins, des roues....[/HS]

Pour ta nouvelle idée, tu peux créer un deuxième fichier par dossier qui va contenir les fichiers tirés au hasard; Le jour où tu dois tirer de nouveau fichier, tu pars de cette liste pour construire la nouvelle comme tu le désires.

Partager ce message


Lien à poster
Partager sur d’autres sites

pourquoi créer deux fichiers n'est il pas possible d'en créer qu'un ?

ou alors c'est pour garder en mémoire les inclues que l'on ne change pas, le temps de remplacer le premier fichier existant ???

Tu n'aurais pas une idée par hazard pour passer de la voiture à roulette à la ferrari :D

car comme tu l'as compris niveau PHP je suis moins performent qu'une voiture a roulette lol :wub:

Modifié par reg34000

Partager ce message


Lien à poster
Partager sur d’autres sites

<?php 

$nb_aleatoire="4";
$rep ="includes/";
$nbjours="1";

// Répertoire où l'on met les fichiers de cache
$rep_cache = 'cache/';
//On crée le nom du fichier du jour
$id_jour = date("z") % $nbjours;
$fichier_cache = $rep_cache . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php';
if(!file_exists($fichier_cache) || (file_exists($fichier_cache)&& ($id_jour==0))) {

// Si le n'existe pas on le crée puis on l'inclu.

if(!file_exists($fichier_cache)) {
$txt_fichier = "<?php\n";

// on liste les fichiers du repertoire
if ($handle = opendir($rep)) {
$fichiers = array();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$fichiers[] = $rep . $file;
}
}
closedir($handle);
// On crée le tableau contenant les fichiers à inclure
srand ((double) microtime() * 10000000);
$include_aleatoire = array_rand ($fichiers, $nb_aleatoire);
shuffle($include_aleatoire);
for($i=0;$i<count($include_aleatoire);$i++){
$txt_fichier .= "include('".$fichiers[$include_aleatoire[$i]]."');\n";
}
}
$txt_fichier .= "?>";
$f=fopen($fichier_cache,'w');
fwrite($f,$txt_fichier);
fclose($f)=;
}

include($fichier_cache);
?>

voici le message d'erreur

Parse error: parse error, unexpected '='

peux etre que j'ai pas bien mis le code suivant

$fichier_cache = $rep_cache . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php'; 
if(!file_exists($fichier_cache) || (file_exists($fichier_cache)&& ($id_jour==0))) {

J'ai également crée la variable: $nbjours="1";

Il ne m'a pas crée le fichier dans le dossier cache

Partager ce message


Lien à poster
Partager sur d’autres sites
:blink: quand tu mets une erreur, mets là en entier... parce que après le in c'est intéressant pour trouver où est l'erreur ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Parse error: parse error, unexpected $ in ...index.php on line 48

oui mais la ligne 48 ca dépand d'ou se trouve le script dans la page lol :D

Partager ce message


Lien à poster
Partager sur d’autres sites

<HTML>
<HEAD>
<TITLE>Test</TITLE>
</HEAD>
<BODY>
<?php
$nb_aleatoire="4";
$rep ="includes/";
$nbjours="1";

// Répertoire où l'on met les fichiers de cache
$rep_cache = 'cache/';
//On crée le nom du fichier du jour
$id_jour = date("z") % $nbjours;
$fichier_cache = $rep_cache . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php';
if(!file_exists($fichier_cache) || (file_exists($fichier_cache)&& ($id_jour==0))) {

// Si le n'existe pas on le crée puis on l'inclu.

if(!file_exists($fichier_cache)) {
$txt_fichier = "<?php\n";

// on liste les fichiers du repertoire
if ($handle = opendir($rep)) {
$fichiers = array();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$fichiers[] = $rep . $file;
}
}
closedir($handle);
// On crée le tableau contenant les fichiers à inclure
srand ((double) microtime() * 10000000);
$include_aleatoire = array_rand ($fichiers, $nb_aleatoire);
shuffle($include_aleatoire);
for($i=0;$i<count($include_aleatoire);$i++){
$txt_fichier .= "include('".$fichiers[$include_aleatoire[$i]]."');\n";
}
}
$txt_fichier .= "?>";
$f=fopen($fichier_cache,'w');
fwrite($f,$txt_fichier);
fclose($f);
}

include($fichier_cache); ?>
</BODY>
</HTML>

le probleme il met ligne 48

c'est la derniere </HTML> y a pas d'erreur la

Partager ce message


Lien à poster
Partager sur d’autres sites

il manquait une accolade:

<?php 
$nb_aleatoire="4";
$rep ="includes/";
$nbjours="1";

// Répertoire où l'on met les fichiers de cache
$rep_cache = 'cache/';
//On crée le nom du fichier du jour
$id_jour = date("z") % $nbjours;
$fichier_cache = $rep_cache . '.' . basename(dirname($_SERVER["PHP_SELF"])) . '.php';
if(!file_exists($fichier_cache) || (file_exists($fichier_cache)&& ($id_jour==0))) {

   // Si le n'existe pas on le crée puis on l'inclu.
   $txt_fichier = "<?php\n";
   // on liste les fichiers du repertoire
   if ($handle = opendir($rep)) {
       $fichiers = array();
       while (false !== ($file = readdir($handle))) {
           if ($file != "." && $file != "..") {
           $fichiers[] = $rep . $file;
           }
       }
       closedir($handle);
   }
   
   // On crée le tableau contenant les fichiers à inclure
   srand ((double) microtime() * 10000000);
   $include_aleatoire = array_rand ($fichiers, $nb_aleatoire);
   shuffle($include_aleatoire);
   for($i=0;$i<count($include_aleatoire);$i++){
       $txt_fichier .= "include('".$fichiers[$include_aleatoire[$i]]."');\n";
   }
   $txt_fichier .= '?>';
   $f=fopen($fichier_cache,'w');
   fwrite($f,$txt_fichier);
   fclose($f);
}

include($fichier_cache);
?>

Partager ce message


Lien à poster
Partager sur d’autres sites

super ca marche niket

si on met $nbjours="2";

je supose que ca change tous les jours c'est bien cela

si on met $nbjours="1"; ca change en continu ?

et $nbjours="0"; aussi

c'est normal, ca devrait pas plutot etre

avec 0 ca devrait faire tirage a chaque chargement

et 1 remplacement 1 fois par jour

et 2 tous les deux jours ?

:blush: je chipotte lol

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×