Tom's Guide > Forum > Programmation > Phrase du jour [résolu]

Phrase du jour [résolu]

Forum Programmation : Phrase du jour [résolu]

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous ,

je recherche un script en PHP pour pouvoir afficher une phrase en fonction de la date du jour.
Je désirerais pouvoir utiliser un fichier txt pour les phrases, ce qui me facilitera la gestion.

Un novice qui vous remercie


Message édité par flomax31 le 25-06-2008 à 15:12:55
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Les phrases, elles sortent d'où ? C'est toi qui va les écrire à la "main" chaque jour ?

Pourquoi veux-tu utiliser un fichier texte ? (possibilité d'utiliser une Base de données pour ce genre de chose...)

Pourrais-tu détailler ce que tu veux faire ? Tu veux qu'à chaque fois qu'on arrive sur ta page, ton serveur Web aille interroger un fichier texte en fonction de la date du jour et qu'il te l'affiche ?

------------------------------ Quelques tutos...
Répondre à Darit

Je pense qu'il veut simplement un script qui affiche une phrase aléatoire tout les jours (une citation, un proverbe, une blague,...).

L'utilisation d'un fichier est je pense pour lui plus simple du fait qu'en ouvrant le fichier avec un éditeur il peut rentrer toutes ses phrases sans passer par des formulaires ou se genre de choses.

Après dsl mais je ne connais pas de script permettant de faire ca ... mais il doit y en avoir pas mal sur google.

Répondre à loic m

Voilà déjà un bout de code simple permettant d'afficher le contenu (les 255 premiers caractères) d'un fichier.

Code :
  1. <?
  2. $fp = fopen("phrase.txt","r" );
  3. $donnees = fgets($fp,255);
  4. fclose($fp);
  5. echo'Le fichier contient : '.$donnees;
  6. ?>


Ensuite à voir comment et quand la phrase est changée...

------------------------------ Quelques tutos...
Répondre à Darit

j'ai bien une solution, mais je sais pas si ça va convenir :

 

le fichier txt est en fait un .php (on va dire textes.php) qui contient ceci :

<?php
$textes = array(
"la première phrase",
"la deuxieme phrase",
"la troisieme",
"..."
);
?>

 

et le php qui va afficher une phrase :

 

<?php
require("textes.php" );
echo $textes[date('d')];
?>


Message édité par jerbe le 24-06-2008 à 11:29:00
------------------------------ Venez jouer sur mon site : http://www.gugusland.com
mes autres sites : http://jeremy1000.free.fr > http://jybforum.free.fr
Répondre à jerbe

Merci pour vos réponses mais je vais m'expliquer un peu plus.....

en fait, je voudrais que chaque jour apparaisse une phrase différente mais en tenant compte de la date

le fichier texte serait par ex :

01-01-08 - salut
02-01-08 - il fait beau
.
.
.
et sur la page d'acceuil, la phrase apparaiterais comme cela :

Citation du 02-01-08 :
"il fait beau"


et ainsi de suite mais comme dit bien Loic m c'est plus facile à gérer en txt qu'avec des formulaires

Merci de votre aide précieuse

Répondre à flomax31

bin reprend mon code mais avec un index :

 

le fichier txt est en fait un .php (on va dire textes.php) qui contient ceci :

 

<?php
$textes = array(
"01-01-08" => "la première phrase",
"24-06-08" => "la deuxieme phrase",
"03-01-08" => "la troisieme"
);
?>


 

et le php qui va afficher une phrase :

 

<?php
require("textes.php" );
echo "Citation du $index_date :<br>\"" . $textes[date("d-m-y" )] . "\"";
?>

 

(y avait pas grand chose à modifier)


Message édité par jerbe le 24-06-2008 à 15:49:11
------------------------------ Venez jouer sur mon site : http://www.gugusland.com
mes autres sites : http://jeremy1000.free.fr > http://jybforum.free.fr
Répondre à jerbe

Merci beaucoup mais voilà ce que ça donne :

\"$textes[$index_date]\""; ?>

tu peux vérifier à cette adresse : http://epemons.e3b.org/

Excuse-moi du dérangement mais je patauge vraiment en PHP et encore merci de ton aide

Répondre à flomax31

De mon côté ca marche...

------------------------------ Quelques tutos...
Répondre à Darit

Salut

Chez moi ca marche aussi :)

Répondre à quarty

bin oui ça marche.
Tu as du essayé en local au lieu d'essayer sur un serveur apache.

------------------------------ Venez jouer sur mon site : http://www.gugusland.com
mes autres sites : http://jeremy1000.free.fr > http://jybforum.free.fr
Répondre à jerbe

et ben merci à tous et encore mille excuses du dérangement, ça fonctionne effectivement à merveille

chapeau bas à tous et peut-être a+

Répondre à flomax31

Bonjour,
Si cela vous intéresse, je l'ai en version texte :

- Le fichier phrases.txt

Code :
  1. (24-06-2008) La vie est un long fleuve tranquille*(25-06-2008)Fumer pue*(26-06-2008)Fumer tue*



- Le fichier today.php

Code :
  1. <HTML>
  2. <body>
  3. <?php
  4. $ouvre=fopen("phrases.txt","r" );
  5. $today = date("d-m-Y" );
  6. while (!feof ($ouvre))
  7.     {
  8.     $lecture = fgets($ouvre, 1000);
  9.     $donnee=explode("*",$lecture);
  10.     $combien=count($donnee)-1;
  11.     for ($i=0;$i<=$combien;$i++)
  12.         {
  13.         if(ereg($today,$donnee[$i]))
  14.             {
  15.             $donnee[$i] = str_replace("(", "", $donnee[$i]);
  16.             $donnee[$i] = str_replace(" )", "", $donnee[$i]);
  17.             $donnee[$i] = str_replace($today, "", $donnee[$i]);
  18.             echo $donnee[$i];
  19.             }
  20.         }
  21.     }
  22. fclose($ouvre);
  23. ?>
  24. </body>
  25. </HTML>

------------------------------ Besoin d'aide informatique/design/web ? Kommunauty !
Referencement gratuit
Répondre à SiMax86

Merci ça fonctionne également mais un petit soucis , le résultat laisse apparaître une paranthèse au début du texte ??? comme par ex : )La vie est un long fleuve tranquille

Pourriez-vous me dire d'ou cela vient??
Merci

Répondre à flomax31

voilà j'ai trouvé, en fait il faut retirer la parenthèse juste après la date dans le fichier "phrase.txt"

Merci à tous de vos effort

Répondre à flomax31

De rien :)

 

Au fait il n'y a aucun problème mais il y a un bug du forum. A la ligne 20 du code :

 

$donnee[$i] = str_replace(" )", "", $donnee[$i]);

 

Le forum rajoute un espace. avant la parenthèse. Il faut l'enlever.


Message édité par SiMax86 le 24-06-2008 à 15:47:10
------------------------------ Besoin d'aide informatique/design/web ? Kommunauty !
Referencement gratuit
Répondre à SiMax86

pourquoi se faire chier avec des * et des () ?
vous auriez pu faire avec un fichier comme ça :

01-01-08=bonjour les gens
02-01-08=ca va aujourd'hui ?

(j'avais fait une fonction qui sortait le résultat, si tu la veux j'essairai de la retrouver).
Perso je trouve le code que j'ai mis plus haut plus simple.
Mais tu fais ce que tu veux.

Répondre à jerbe

Effectivement,
On peut le mettre avec votre code comme ça :

Code :
  1. <HTML>
  2. <body>
  3. <?php
  4. $ouvre=fopen("phrases.txt","r" );
  5. $today = date("d-m-Y" );
  6. while (!feof ($ouvre))
  7.     {
  8.     $lecture = fgets($ouvre, 1000);
  9.     $donnee=explode("*",$lecture);
  10.     $combien=count($donnee)-1;
  11.     for ($i=0;$i<=$combien;$i++)
  12.         {
  13.         if(ereg($today,$donnee[$i]))
  14.             {
  15.             $donnee[$i] = str_replace("=", "", $donnee[$i]);
  16.             $donnee[$i] = str_replace($today, "", $donnee[$i]);
  17.             echo $donnee[$i];
  18.             }
  19.         }
  20.     }
  21. fclose($ouvre);
  22. ?>
  23. </body>
  24. </HTML>



Moi je ne fais que répondre à la question qui a été posée, c'est vrai que votre solution est plus légère :)

------------------------------ Besoin d'aide informatique/design/web ? Kommunauty !
Referencement gratuit
Répondre à SiMax86

tu peux me tutoyer (moi je tutoie tout le monde sur les forums).

 

Voici la solution en utilisant un fichier texte comme tu as mis (j'ai repris ton code et je l'ai un peu modifié) :

 

il faut un fichier phrases.txt sous cette forme :

 

24-06-08=jour 1
25-06-08=jour 2
26-06-08=jour 3
27-06-08=jour 4

 

et le code php suivant pour le lire :

 

<?php
$date = date("d-m-y" );
if($ouvre=fopen("phrases.txt", "r" ))
{
while (!feof ($ouvre))
{
$lecture = fgets($ouvre, 1000);
$donnee=explode("=",$lecture);
if($donnee[0] == $date)
echo "Citation du $date : <br>$donnee[1]";
}
fclose($ouvre);
}
?>


Message édité par jerbe le 24-06-2008 à 17:56:39
------------------------------ Venez jouer sur mon site : http://www.gugusland.com
mes autres sites : http://jeremy1000.free.fr > http://jybforum.free.fr
Répondre à jerbe

C'est plus soft ouais :)

Je vais commencer à apprendre à faire des scripts plus softs je pense :)

------------------------------ Besoin d'aide informatique/design/web ? Kommunauty !
Referencement gratuit
Répondre à SiMax86

eh bien merci pour vos commentaires, c'est sympa de voir que l'on peut être aidé comme ça...surtout que je suis novice en la matière .......je commence seulement à m'y mettre mais pour un débutant c'est pas aussi simple

en tout cas merci même si ce n'est qu'un petit bout de code

Répondre à flomax31

De rien :)

------------------------------ Besoin d'aide informatique/design/web ? Kommunauty !
Referencement gratuit
Répondre à SiMax86

Bonjour à tous et merci de me recevoir dans votre forum.

J'ai éffectué la manipulation ci-dessous (merci jerbe) mais ma page apparaît en blanc.
J'ai réalisé le fichier phrases.txt en respectant le format (depuis Word -> enregister au format texte). Avec Dreamweaver cs3, j'ai réalisé une nouvelle page en php dans laquelle j'ai insérer le code en php entre les balises body.

code fichier x_citations.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<style type="text/css">
<!--
body,td,th {
font-size: 10px;
color: #000000;
}
-->
</style></head>

<body>
<?php
$date = date("d-m-y" );
if($ouvre=fopen("phrases.txt", "r" ))
{
while (!feof ($ouvre))
{
$lecture = fgets($ouvre, 1000);
$donnee=explode("=",$lecture);
if($donnee[0] == $date)
echo "Citation du $date : <br>$donnee[1]";
}
fclose($ouvre);
}
?>
</body>
</html>



Le fichier phrases.txt

5-12-2008=phrase 1
6-12-2008=phrase 2
7-12-2008=phrase 3

Merci d'avance.

Répondre à ludovicc_83
Tom's Guide > Forum > Programmation > Phrase du jour [résolu]
Aller à :

Il y a 2123 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens