begin process at 2012 05 31 02:23:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

probleme script recherche e t liste


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme script recherche e t liste

mercredi 28 janvier 2009 à 18:43:01 | probleme script recherche e t liste

liptibilly

je suis en train de modifier mon code 'recherche et list afin de limiter le nombre de ligne affichée lors d'une recherche, pouvez-vous m'aider, voici le code:

<code>

<?php
// initialisation
// extensions des fichiers dans lesquels la recherche s'effectura
$Extens= array('html');
// interdictions de chercher dans certains répertoires, définis par leur nom
// (valable pour tout leur contenu, fichiers + sous-répertoires)
$MasqDo= array('secret');
$luimeme= basename($_SERVER['PHP_SELF']);
// traitement des variables passées en POST
$rechlancee='non'; $requete='';
if (isset($_POST['cherche'])){
$rechlancee='oui';
if (isset($_POST['requete'])) $requete=$_POST['requete'];
}
// paramétrage de magic_quotes_gpc
( get_magic_quotes_gpc())? $magquote= 'on': $magquote= 'off';
if($magquote=='on') $requete=stripslashes($requete);
?>

<!-- Entete HTML -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Moteur de recherche</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="description" CONTENT="page PHP pour petit moteur de recherche">
<META NAME="copyright" CONTENT="TTU">
<META NAME="author" CONTENT="tedheu">
<META NAME="robots" CONTENT="all">

<!-- Style -->
<STYLE type=text/css>
BODY,TD,A,P,.h {font-family: arial,sans-serif}
.h {font-size: 20px}
.q {color: #0000cc}
</STYLE>

<BODY text=#000000 vLink=#551a8b aLink=#ff0000 link=#0000cc bgColor=#ffffff topMargin=3 marginheight="3">
<!-- formulaire de saisie -->
<FORM method="post">
<H1 style="color: blue; font: bold italic 26px verdana">Recherche d'un enregistrement</H1>
<CENTER>
<TABLE cellSpacing="0" cellPadding="0" border="0">
<TR>
<TD align="middle">
<INPUT name="requete" maxLength="2048" size="55" value="<? echo htmlspecialchars($requete,ENT_QUOTES) ?>"></TD>
<TD width="25%">&nbsp;
<INPUT type="submit" name="cherche" value="Recherche"></TD>
</TR>
</TABLE>
</CENTER>
</FORM>
<SPAN style="color: #88f; font: normal 10px arial">moteur de recherche de liptibilly <I>(version 2.1)</I></SPAN><BR>

<?
// Ouverture de la boucle de traitement, si recherche lancée et requete non vide
if (($rechlancee=='oui') and (!$requete=='')){ // boucle principale de traitement
// traitement de la requête
$req_lower= strtolower($requete);
$occurrence=0;
?>

<!-- affichage HTML "bandeau" -->
<TABLE border="0" cellSpacing="0" cellPadding="0" width="100%" bgColor="e5ecf9">
<TR><TD width="100%" colspan="2" bgcolor="#3366cc"><IMG height="1" width="1"></TD></TR>
<TR>
<TD width="40%" bgColor="#e5ecf9">recherche&nbsp;<B style="color:navy"><? echo htmlspecialchars($requete,ENT_QUOTES) ?></B>&nbsp;</TD>
<TD Id="Icomm" align="right" bgColor="#e5ecf9">&nbsp;</TD>
</TR>
</TABLE>
#
<?
// initialisation du parcours des fichiers
$niveau=0;
$Noeud[0]='.';
$Liste[0]='*';
do {
// lecture du contenu du dossier courant, niveau= $niveau
// correspondant au noeud de nom $Noeud[$niveau]
// résultat > dossiers dans $Doss (de 0 à $ndoss) et fichiers dans $Fich (de 0 à $nfich)
$chemin='';
for ($i=0;$i<=$niveau;$i++){
$chemin=$chemin.$Noeud[$i].'/';
}
$dp=opendir($chemin); $ndoss=-1; $nfich=-1;
while (gettype($file=readdir($dp))!= @boolean){
// pas le fichier php lui même
if ($chemin=='./' and $file==$luimeme) $file='?';
// masquage des répertoires interdits (et leurs sous-répertoires)
if (in_array($file,$MasqDo))$file='?';
if ($file!='.' and $file!='..' and $file!='?'){
if (is_dir($chemin.'/'.$file))$Doss[++$ndoss]=$file;
if (is_file($chemin.'/'.$file))$Fich[++$nfich]=$file;
}
}
closedir($dp);
// y a t-il un dossier qui n'a pas été exploré ?
$new='';
for ($i=0;$i<=$ndoss;$i++){
if (!strstr($Liste[$niveau],'*'.$Doss[$i].'*')){
$new=$Doss[$i];
break;
}
}
if ($new!=''){
// si oui on descend dans ce dossier $new
$Liste[$niveau]=$Liste[$niveau].$new.'*';
$niveau++;
$Noeud[$niveau]=$new;
$Liste[$niveau]='*';
}
else {
// si non, on traite les fichiers puis on remonte
// chemin du répertoire= $chemin, liste des fichiers= tableau $Fich[]
if (!($nfich<0)){
for ($i=0;$i<=$nfich;$i++){
$nomfch=$Fich[$i];
// gestion des extensions
$ext='';
$ok= strrpos($nomfch, '.');
// pas d'extension $ok = false
// pas de nom comme .htaccess, $ok = 0
// attention si ok=0 même chose que ok=false pour un test if (!$ok)
if ($ok>=0) $ext = strtolower(substr($nomfch, strrpos($nomfch, '.')+1));
(in_array($ext,$Extens))? $ook=1: $ook=0;
$note='';
if (!is_readable($chemin.'/'.$nomfch)){
$ook=0;
$note= $note.'un ou des fichiers n\'ont pu être lus';
}
// le fichier a une extension permise
if ($ook==1){
// lecture du fichier
$Lignefch=file($chemin.'/'.$nomfch);
$debut=true;
// recherche d'une occurence de la requête, quelquesoit la casse, ligne par ligne
 for ($ilgn=0;$ilgn<count($Lignefch);$ilgn++){
$presence=0;
$req0=$req_lower;
// pour gérer les caract�res accentués "html"
$reqh=htmlentities($req_lower);
if ($req0txt=substr(stristr($Lignefch[$ilgn],$req0),0,strlen($req0))) $presence=1;
if ($reqh!=$req0){
if ($reqhtxt=substr(stristr($Lignefch[$ilgn],$reqh),0,strlen($reqh))) $presence=2;
}
if ($presence>0){
print "<DIV style=font-size:12px>\n";
if ($debut){
$debut=false;
$chemaff=substr($chemin,2);
print "<SPAN style=\"color:purple\">-------------</SPAN><BR>\n";
print "<A href=\"$chemin$nomfch\" target=\"_blank\">$chemaff$nomfch</A> &nbsp;&nbsp;\n";
print "(<I style=\"color:purple\">dossier:</I> $chemin &nbsp;\n";
print "<I style=\"color:purple\">fichiers:</I>&nbsp;$nomfch )<BR>\n";
}
$texte=StripSlashes(htmlspecialchars($Lignefch[$ilgn]));
if ($presence==1){
$req=StripSlashes(htmlspecialchars($req0txt));
$texte=str_replace($req,'<B style="color: navy; background-color: ff8">'.$req.'</B>',$texte);
}
if ($presence==2){
$req=StripSlashes(htmlspecialchars($reqhtxt));
$texte=str_replace($req,'<B style="color: navy; background-color: fef">'.$req.'</B>',$texte);
}
print "<SPAN style=\"color:green\">ligne $ilgn :</SPAN> $texte\n";
print "</DIV>\n";
$occurrence++;
}
}
}
}
}
// apr�s traitement, on remonte au niveau supérieur
$niveau--;
}
}
while ($niveau>=0);
?>
#
<SCRIPT language="JavaScript">
Objs=document.getElementById('Icomm');
commentaire= '<small>occurrence de la chaine&nbsp;<span style=color:blue>&quot;&nbsp;<? echo htmlspecialchars($requete,ENT_QUOTES) ?>&nbsp;&quot;</span> =&nbsp;&nbsp;<? echo $occurrence ?></small>'
Objs.innerHTML= commentaire;
</SCRIPT>
#
<?
if ($occurrence==0){
print "<BR><BR>\n";
print "<SPAN style=\"color:navy\"><I>Recherche infructueuse ... pas de r&eacute;sultat</I></SPAN><BR>\n";
}
if ($note!=''){
print "<small><I>(Attention: $note )</I></small>";
}
//
} // fin de la boucle principale de traitement
?>

</code>

merci


Cette discussion est classée dans : file, chemin, niveau, nbsp, if


Répondre à ce message

Sujets en rapport avec ce message

probleme avec input type file impossible de recup une valeur [ par poule550705 ] Je doit juste recupérer le chemin exact du fichier selectionner avec . Je n'arrive qu'a recuperer le nom de ce fichier avec $_FILE et non pas le chemi Liste de répertoire [ par chatainsim ] Bonjour, j'utilise ce bout de code pour afficher la liste des repertoire présent avec le fichier, seulement voilà, j'aurais aimer que certain d un probleme louche [ par deblok83 ] bonjour, j'ai un formulaire de saisie de mail (adresse,sujet,message et piece jointe ) <FORM method="POST" action="index.php?rubrique=emails&mode=env calcul de chemin [ par christian43 ] Bonjours,J'ai une variable: $level qui me donne le niveau dans mes sous-répertoires:quand $level=0 ,je suis au 1er niveau (repertoire racine)quand $le affichage d'une image [ par refkaben ] Bonjour,Je developpe un site ou les utilisateurs ont un formulaire, dans lequel il va donner le chemin d'une image, cette image sera upploadée, puis a Pb chemin de longueur superieure à 255 caractères [ par kohntark ] Salut, Je souhaite lister un répertoire (ou une unité) afin d'appliquer un traitement à certains types de fichiers. Le script s'execute en CLI sous w Transfert d'un chemin par variable [ par ricco01 ] Bonsoir à tous,Ma requête est la suivante.Je souhaite transferer à travers une variable un chemin disque du type (unité:\rep\ssrep...) pour un traitem probleme affichage images [ par xzonz ] Salut a toutes et tousvoila j'ai un script qui liste un repertoire avec une icone differente devant chaque fichier selon son extension ... ca fonction affichage images [ par xzonz ] salut tout le monde et bonnes fetes j'ai un souci que je n'arrive pas à résoudre(déja javascript et php [ par amine390 ] salutje veux utilise une fonction java script en php j'arrive pas a recupere la valeur de cette function l'erreur qui s'affiche est undifuned function


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales