Stocker des mots-clefs dans un fichier texte ?

bengilli

Membre expert
Club iGen
17 Avril 2000
2 645
315
46
Paris
Hello,

Je souhaiterai, à partir d'un script de recherche sur des évennements, générer un fichier texte sur le serveur permettant de stocker les mots-clefs, afin d'établir des mini-statistiques sur les mots-clefs les plus interrogés.

Voici le formulaire de recherche que j'ai écrit (la variable en question est $recherche) :

Bloc de code:
<form name="form1" method="post" action="<?php echo $url_recherche ?>">
                    <p> 
    <input name="recherche" type="text" id="recherche" value="<?php echo $recherche ?>">
  </p>
  <p> 
    <input type="radio" name="mois" value="1" <?php if ($mois) echo "checked" ?>>
	<?php
	if ($this_month == "4" OR $this_month == "8" OR $this_month == "10")
	{
	echo "Concerts d'";
	}
	else
	{
	echo "Concerts de ";
	}
    echo "$nom_mois $this_year";
	?><br>
    <input type="radio" name="mois" value="0" <?php if (!$mois) echo "checked" ?>>
    Tous les concerts &agrave; venir</p>
  <p> 
    <input type="submit" name="Submit2" value="Rechercher">
  </p>
</form>

Je pourrait les stocker dans la base mais je préférerait un fichier texte pret à échanger.
 
Je me réponds à moi même ;)
Pour une variable "$recherche" à stocker dans un fichier texte :


Bloc de code:
<?php
$filename = 'path/NOMDUFICHIER.TXT';
$keywords = "$recherche \n";

if ($recherche != "")
{
if (!$handle = fopen($filename, 'a')) {
/* mode debug echo "La variable est vide"; */
exit;
}

if (fwrite($handle, $keywords) === FALSE) {
/* mode debug echo "Le fichier n'est pas accessible en écriture"; */
exit;
}
fclose($handle);
} 
else
{
/* mode debug echo "Le fichier n'est pas accessible en écriture"; */
}
?>

Le fichier texte en question doit etre en chmod 777 pour que ça fonctionne correctement.
 
bengilli a dit:
Je me réponds à moi même ;)
Pour une variable "$recherche" à stocker dans un fichier texte :


Bloc de code:
<?php
$filename = 'path/NOMDUFICHIER.TXT';
$keywords = "$recherche \n";

if ($recherche != "")
{
if (!$handle = fopen($filename, 'a')) {
/* mode debug echo "La variable est vide"; */
exit;
}

if (fwrite($handle, $keywords) === FALSE) {
/* mode debug echo "Le fichier n'est pas accessible en écriture"; */
exit;
}
fclose($handle);
} 
else
{
/* mode debug echo "Le fichier n'est pas accessible en écriture"; */
}
?>

Le fichier texte en question doit etre en chmod 777 pour que ça fonctionne correctement.

Avec la seconde condition if...else tu écrits deux fois "le fichier n'est pas accessible en écriture". D'autre part c'est normal le triple = ; deux ne seraient-ils pas suffisant ? ... ;)
 
ben déjà que je trouve mes solutions tout seul ;)

enfin merci pour les correction, en effet je sais pas pourquoi en mettre trois mais mon bouquin sur le PHP propose "==" et "===" dans d'autres pages comme opérateur de comparaison... sans doute une faute de frappe.
 
bengilli a dit:
enfin merci pour les correction, en effet je sais pas pourquoi en mettre trois mais mon bouquin sur le PHP propose "==" et "===" dans d'autres pages comme opérateur de comparaison... sans doute une faute de frappe.

non, ce n'est pas une erreur de frappe ;)

$a == $b (Egal) Vrai si $a est égal à $b .
$a === $b (Identique) Vrai si $a est égal à $b et qu'ils sont de même type ( PHP 4 seulement).