Moteur de recherche interne en php
Hadès
-
Hadès -
Hadès -
Bonjour,
Je suis en train de créer un site sur la mythologie grecque, comme celui-ci contient beaucoup d'informations, j'ai donc décidé d'y mettre un petit moteur de recherche interne en php.
Mais lorsque je le mets en ligne j'ai toujours ce message au dessus de ma page :
Warning: Invalid argument supplied for foreach() in /home/users/00/1e/34/home/www/recherche/mrech.php on line 58
J'ai beau chercher, je ne sais pas quoi faire (je n'y connais rien en php, mais je voulais essayer pour comprendre)
Quelqu'un peut-il m'aider?
Je suis en train de créer un site sur la mythologie grecque, comme celui-ci contient beaucoup d'informations, j'ai donc décidé d'y mettre un petit moteur de recherche interne en php.
Mais lorsque je le mets en ligne j'ai toujours ce message au dessus de ma page :
Warning: Invalid argument supplied for foreach() in /home/users/00/1e/34/home/www/recherche/mrech.php on line 58
J'ai beau chercher, je ne sais pas quoi faire (je n'y connais rien en php, mais je voulais essayer pour comprendre)
Quelqu'un peut-il m'aider?
A voir également:
- Moteur de recherche interne en php
- Copernic moteur de recherche - Télécharger - Navigateurs
- Google moteur de recherche page d'accueil - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Le fichier pdf à télécharger est disponible avec le même nom sur le site de bell canada. mais vous ne le trouverez pas directement avec un moteur de recherche… quelle est l’url de ce fichier pdf sur le site web de bell canada ? - Forum Réseaux sociaux
- Copiez la ligne qui indique aux moteurs de recherche de ne pas référencer la page ✓ - Forum Référencement
1 réponse
Voilà le code au juste:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
</head>
<body>
<?php
//teste si la page correspond à la recherhce
function teste()
{
global $texte, $l1, $l2, $l3, $l4;
$sat1=true;
$sat2=true;
if ($l1!='' && strpos ($texte, $l1)===false) {$sat1=false;}
if ($l2!='' && strpos ($texte, $l2)===false) {$sat1=false;}
if ($l1 =='' &&$l2 =='') {$sat1=false;}
if ($l3!='' && strpos ($texte, $l3)===false) {$sat2=false;}
if ($l4!='' && strpos ($texte, $l4)===false) {$sat2=false;}
if ($l3 == '' && $l4=='') { $sat2=false;}
return $sat1 || $sat2;
}
//Récupération des locutiions à rechercher
$l1 = strtoupper (stripslashes ($_POST['l1']));
$l2 = strtoupper (stripslashes ($_POST['l2']));
$l3 = strtoupper (stripslashes ($_POST['l3']));
$l4 = strtoupper (stripslashes ($_POST['l4']));
//Lecture de la page de formulaire
$fp = fopen ('mrech.htm', 'r');
$page = fread ($fp, 32000);
fclose ($fp);
$psb = strpos ($page, '</body>');
$page = substr ($page, 0, $psb);
$page.="\nRecherche de ".$l1;
if ($l2!='') { $page.=' ET '.$l2;}
if ($l3!='') { $page.=' OU '.$l3;}
if ($l4!='') { $page.=' ET '.$l4;}
$page.="<br /><br />\n";
//Lecture du catalogue du répertoire racine
$drac = getcwd();
$e = opendir ($drac);
while (($f=readdir($e)) !== false)
{
if (($f !='.') && ($f != '..')){
if (strpos ($f, '.') === false) { $dirs[] = $f;
}else{
if (strpos ($f, '.htm') !== false) { $fhtm[] = $f;}
}
}
}
//Lecture des sou-répertoires
foreach ($dirs as $srep)
{
$dr = $drac.'/'.$srep;
$e = opendir ($dr);
while (($f = readdir($e)) !== false){
if (($f != '.') && ($f != '..')){
if (strpos ($f, '.') !== false){
if (strpos ($f, '.htm') !== false){
$fhtm[] = $srep.'/'.$f;
}
}
}
}
}
//Examen des fichiers
$n=0;
foreach ($fhtm as $fnam)
{
$fich = fopen ($fnam, 'r');
$texte = strtoupper (fread ($fich, 32000));
fclose ($fich);
if (teste())
{
$n++;
$page.='<a href"'.$fnam.'">'.$fnam.'</a> ';
if ($n==5)
{
$page.="<br />\n";
$n=0;
}
}
}
echo $page."\n</body></html>";
?>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
</head>
<body>
<?php
//teste si la page correspond à la recherhce
function teste()
{
global $texte, $l1, $l2, $l3, $l4;
$sat1=true;
$sat2=true;
if ($l1!='' && strpos ($texte, $l1)===false) {$sat1=false;}
if ($l2!='' && strpos ($texte, $l2)===false) {$sat1=false;}
if ($l1 =='' &&$l2 =='') {$sat1=false;}
if ($l3!='' && strpos ($texte, $l3)===false) {$sat2=false;}
if ($l4!='' && strpos ($texte, $l4)===false) {$sat2=false;}
if ($l3 == '' && $l4=='') { $sat2=false;}
return $sat1 || $sat2;
}
//Récupération des locutiions à rechercher
$l1 = strtoupper (stripslashes ($_POST['l1']));
$l2 = strtoupper (stripslashes ($_POST['l2']));
$l3 = strtoupper (stripslashes ($_POST['l3']));
$l4 = strtoupper (stripslashes ($_POST['l4']));
//Lecture de la page de formulaire
$fp = fopen ('mrech.htm', 'r');
$page = fread ($fp, 32000);
fclose ($fp);
$psb = strpos ($page, '</body>');
$page = substr ($page, 0, $psb);
$page.="\nRecherche de ".$l1;
if ($l2!='') { $page.=' ET '.$l2;}
if ($l3!='') { $page.=' OU '.$l3;}
if ($l4!='') { $page.=' ET '.$l4;}
$page.="<br /><br />\n";
//Lecture du catalogue du répertoire racine
$drac = getcwd();
$e = opendir ($drac);
while (($f=readdir($e)) !== false)
{
if (($f !='.') && ($f != '..')){
if (strpos ($f, '.') === false) { $dirs[] = $f;
}else{
if (strpos ($f, '.htm') !== false) { $fhtm[] = $f;}
}
}
}
//Lecture des sou-répertoires
foreach ($dirs as $srep)
{
$dr = $drac.'/'.$srep;
$e = opendir ($dr);
while (($f = readdir($e)) !== false){
if (($f != '.') && ($f != '..')){
if (strpos ($f, '.') !== false){
if (strpos ($f, '.htm') !== false){
$fhtm[] = $srep.'/'.$f;
}
}
}
}
}
//Examen des fichiers
$n=0;
foreach ($fhtm as $fnam)
{
$fich = fopen ($fnam, 'r');
$texte = strtoupper (fread ($fich, 32000));
fclose ($fich);
if (teste())
{
$n++;
$page.='<a href"'.$fnam.'">'.$fnam.'</a> ';
if ($n==5)
{
$page.="<br />\n";
$n=0;
}
}
}
echo $page."\n</body></html>";
?>
</body>
</html>