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
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Utilitaires
- 'Pip' n’est pas reconnu en tant que commande interne ✓ - Forum Python
- Recherche de pairs utorrent ✓ - Forum Téléchargement
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>