Designed by NoKi !
65 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

Aide php sur son serveur local

Un petit moteur de recherche pour les fonctions





romuluslepunk

Un moteur de recherche de fonctions sur votre serveur local comme celui de php.net ?
Pas de problème !!

Un peu de programmation et c'est réglé.



 Prérequis 
Il ne faut pas énormément de connaissances en php et html :
    - connaître le fonctionnement des formulaires ;
    - les variables d'environement ;
    - manipulations de fichier.
Connaître ceci sera suffisant.
Si vous n'êtes pas encore assez avancé, le script complet est à la fin du tutorial.

 Installation des fichiers d'aide 
Nous n'allons tout de même pas écrire une par une les pages avec les explications des fonctions !!
Des "packs" sont déja tout faits, prêts a être téléchargés. Le site Nexen nous en propose de très biens
en français (et souvent remis à jour !!).
Sur cette page, nous trouverons la liste des packs. Je vous conseille de télécharger la version complète.
Complète ou pratique, il vous faut le format html (zip, gzip ou bzip sans aucune importance).

Décompressez l'archive dans le dossier de votre choix
(chez moi, ça se trouve dans easyphp/www/aide_php/documentation)

Ca y est l'installation des fichiers d'aides est finie.

Il faut savoir que les noms de fichiers comportent le nom de la fonction.
Par exemple pour la fonction 'chr()', le nom de fichier est "function.chr.html".
Donc en tapant 'chr' ou meme 'hr', le lien vers la page sera affiché.


 Création du moteur de recherche de base 
Nous allons créer notre moteur de recherche "de base".
Je l'appelle de base car il fonctionnera mais pour la mise en page et au niveau pratique il ne sera pas au top.
Nous l'améliorerons plus tard.

Voici déjà le code avec commentaires.


<html>
<head>
<title>Moteur de recherche des fonctions PHP.</title>
</head>
<body>
<?
// si le formulaire n'a pas encore ete envoye
if (getenv('REQUEST_METHOD') == "GET")
    {
    
?>
    <p><font size="4" color="#800000"><b><u><i>
    Moteur de recherche des fonctions PHP.
    </i></u></b></font></p>
    
    <form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
     <p>Tapez le nom de la fonction ou une partie du nom : 
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>    
    </form>
    <?
    
}

// si le formulaire a deja ete envoye
else
    {
    
// recupere le nom de la fonction
    
$fonction $HTTP_POST_VARS['fonction'];
    
    
// si la valeur de $fonction est vide
    //-> on redirectionne sur la meme page pour voir le formulaire
    
if (empty($fonction)) header ("Location: ".getenv('SCRIPT_NAME'));
    
    
// le dossier ou se trouve les fichier html
    // il faut mettre un \ devant un autre \ 
    // pour empecher le caractere d'exclusion
    
$dossier "documentation\\";
    
    
// ouvre le dossier
    
$biblio opendir($dossier);
    
    
// on scanne le dossier fichier par fichier 
    
while ($page readdir($biblio))
        {
        
// si la valeur de $fonction se trouve dans le nom de la page
        
if (stristr($page,$fonction))
            {
            
// on affiche le lien
            
echo ("<a href='".$dossier.$page."'>".$page."</a><br>");
            }
        } 
    }
?>
</body>
</html>

Comme ceci, nous aurons la liste des pages qui expliquent les fonctions.
C'est bien mais on peut encore mieux faire...

 Amelioration de notre moteur de recherche 
Tout d'abord la question à se poser est comment l'ameliorer ?
Voici à quoi j'ai pensé:
    - Apres avoir lancé la recherche, il serait pratique d'avoir le formulaire en haut de page...
    - Dans ce formulaire, pourquoi ne pas afficher la valeur entrée dans le formulaire precedent pour ne
      pas etre obligé de tout retaper lors d'une faute de frappe ?
    - Dans le nom des pages, les _ des fonctions sont remplacés par des - (par exp: session_start()
      devient session-start()), pourquoi ne pas le faire automatiquement pour eviter les erreurs ?

Nous allons appliquer cela:

<html>
<head>
<title>Moteur de recherche des fonctions PHP.</title>
</head>
<body>
<?
// si le formulaire n'a pas encore ete envoye
if (getenv('REQUEST_METHOD') == "GET")
    {
    
?>
    <p><font size="4" color="#800000"><b><u><i><br>
    Moteur de recherche des fonctions PHP.<br>
    </i></u></b></font></p>
    
    <form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
     <p>Tapez le nom de la fonction ou une partie du nom sans les ():
    <input type="text" name="fonction" size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p>
    </form>
    <?
    
}

// si le formulaire a deja ete envoye
else
    {
    
// recupere le nom de la fonction
    
$fonction $HTTP_POST_VARS['fonction'];
    
    
// si la valeur de $fonction est vide
     // -> on redirectionne sur la meme page pour voir le formulaire
    
if (empty($fonction)) header ("Location: ".getenv('SCRIPT_NAME'));
    
    
// le dossier ou se trouvent les fichier html
    // il faut mettre un \ devant un autre \ 
    // pour empecher le caractere d'exclusion
    
$dossier "documentation\\";
    
    
// ouvre le dossier
    
$biblio opendir($dossier);
    
    
// affichage du formulaire a nouveau
    
?>
    <p><font size="4" color="#800000"><b><u><i>
    Moteur de recherche des fonctions PHP.
    </i></u></b></font></p>
    
    <form action="<? echo getenv('SCRIPT_NAME'); ?>" method="post">
     <p>Tapez le nom de la fonction ou une partie du nom sans les ():
    <input type="text" value="<? echo $fonction?>" name="fonction"
    size="25" maxlength="100"><br>
    <input type="submit" value="Chercher"></p> 
    </form>
    <p><hr></p>
    <?    
    
// transforme les _ en -
    
$fonction str_replace("_","-"$fonction);
    
    
// on scanne le dossier fichier par fichier 
    
while ($page readdir($biblio))
        {
        
// si la valeur de $fonction se trouve dans le nom de la page
        
if (stristr($page,$fonction))
            {
            
// on affiche le lien
            
echo ("<a href='".$dossier.$page."'>".$page."</a><br>");
            }
        } 
    }
?>
</body>
</html>


 Encore des améliorations ?? 
Bien sur !!
On pourrait surligner dans les liens la valeur mise dans le formulaire...
et encore plein d'autres choses ...

Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

romuluslepunk le 14/12/2004 (17 883 hits)
Didier Gratuit : Formez-vous sur Silverlight, .NET, OpenXML, ...
Ils l’ont fait avec SQL Server. Découvrez comment !
Concours de programmation Flash !
Au fil des news  
Annuaire d'entreprise en PHP - Très pratique pour ne plus rien perdre
Mon petit annuaire d'entreprise, je m'en sers tous les jours alors autant vous en faire profiter. ...
PHP-MySQL : Formulaire - pour le script 'Bon anniversaire' de DB77
Formulaire et script d'enregistrement pour le script « Bon anniversaire » de DB77 en PHP/MySQL ...
.NET - Introducing Microsoft Silverlight 2.0, 2nd Edition
PHP5 - Upload de fichiers - Classe PHP
PHP - PHP 5 /MYSQL® 5
PHP - Calcul de la surface d'un polygone
Comment supprimer des items d'une liste SharePoint - Supprimer les informations d'une liste SharePoint
SharePoint permet bien sur de stocker des données. Parfois, on peut vouloir effacer certaines de ...
Dreamweaver CS4 - Nouvelle version Béta
Voici la nouvelle mouture, annoncée en juin, juste 6 mois après la sortie de la version CS3. Je ...
PowerShell - Synchronisation répertoire par répertoire
PowerShell - Ajouter des items dans une liste SharePoint
Localisation des développements avec SharePoint - Rendre ses applications SharePoint internationales
Lorsque l'on développe des applications avec SharePoint, on se confronte très souvent à une ...
PowerShell - Supprimer tous les items d'une liste SharePoint
PowerShell - Vider la Corbeille SharePoint d'une collection
PowerShell - Modifier le Thème d'une collection SharePoint
PowerShell - Tester l'existance ou effacer une WebPart
PowerShell - Définir une valeur pour une propiété d'un SPWeb
PowerShell - Importer une liste SharePoint depuis un fichier
PowerShell - Exporter une liste SharePoint dans un fichier
PowerShell - Lister les propriétés d'un site SharePoint
Modification de l'adresse du Search Center - Définir la page de résultat d'une ferme MOSS
Lorsque l'on installe MOSS dans une ferme SharePoint et que l'on configure le moteur de recherche ...
PHP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ...
ASP - Redimensionner Image + Picto après Upload - Galerie photos, revue de presse, ...
Upload de photo, redimensionnement, création de picto, enregistrement ... Utilisation ...
Exporter et Importer un site SharePoint - Comment déplacer un site SharePoint
Une question est très régulièrement posée à tout responsable de ferme SharePoint : Comment ...
Bon anniversaire - Comment le souhaiter à ses membres ?
Avoir un site, c'est bien. Avoir des inscrits, c'est mieux. Souhaiter leur anniversaire, c'est ...
Audio & Vidéo - Multimédia dans ses pages web
AUDIO/VIDEO : QuickTime, MediaPlayer, RealPlayer, FlashPlayer, ... : Du multimédia dans ses pages ...
Magazines - Le Hors-Série .Net de Programmez !
PHP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (PHP).
Communautés - Concours de programmation Flash !
[MAJ] Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Ajout de la vérification de l'existence du fichier et d'un test d'erreur de retour du composant ...
Protéger ses Images - Propriété intellectuelle - Vie privée
Je me suis penché sur la question en tant qu'artiste moi-même, et concepteur de site web pour ...
Création de miniatures - Fonction php de création
Cette fonction sert à créer des miniatures.
ASP - Administrer en ligne - Protection des pages
Protéger ses pages pour administrer son site en ligne en (relative) sécurité (ASP).
JavaScript - Numéros de ligne à gauche d'un textarea
Protection - Sécurité - Mise au point - Précautions - Solutions
Même sans être paranoïaque, on a tous entendu parler de failles de sécurité, piratage informatique, ...
AspSmartUpload - Mode d'Emploi
Le composant ASPSmartUpload (gratuit) permet de gérer les téléchargements de FICHIERS ou de ...
JavaScript - Contrôler une date saisie dans un formulaire
HTML - Ajouter un fichier multimédia dans une page web
HTML - Musique de Fond sur son site
Afficher ses images à la taille voulue - Utilisation du composant IMGSIZE
Devant la diversité des formats d'image actuels, il est parfois nécessaire de connaître les ...
CSS - Icône Personnalisée sur son site
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3 © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 TechNet MVP Codes Sources Wygwam ASP-magazine DotNet Project The Inquirer FR Groupes Utilisateurs Microsoft CodePPC El Roubio