Findfunction - recherche de fonctions php

Description

Voici ma derniere creation, que j'ai fait dans le but de m'aider à mieu trouver certaines fonctions sans passer des heures sur nexent ou php.net.
Il s'agit d'un systeme qui repertorier je l'espere un maximum de fonctions PHP lier avec un moteur de recherche basique, et qui vous renvoies vers sa documentations.

Source / Exemple :


<?php
error_reporting(E_ALL & ~E_NOTICE); // ont va dire que sa cache certaines choses comprometente (lol)
echo "<html><head><title>Recherches de fonctions - FindFunctionSubEngine by juki</title></head><body>";
$db_host="";      // Adresse de la base de données (exemple : sql.free.fr)
$db_user="";  // Username (pour la base de données)
$db_pass="";         // Password (pour la base de données)
$db="";       // Nom de la base de données
mysql_connect($db_host,$db_user,$db_pass) or die("Unable to connect to database");
mysql_select_db($db) or die("Unable to select database");
$maxnumberpage = "101";
$q = $_GET[q];
$p = $_GET[p];
$color = $_GET[color];
if ($color != "1") { $color = 0; }
$pagetrip = "no";
$pagination = 10;
if (!$p) {
$pagetrip = "yes";
$pagingmin = 0;
}
if (ctype_digit($p) AND $p <= $maxnumberpage) {
if ($p == 1 OR $p == 0) { $pagingmin = 0; $pagetrip = "yes"; }
else {
$pagingmin = $p*10;
$pagetrip = "yes";
}
}
if ($q) {
$q = substr($q, 0,50);
$q = str_replace("%00","",$q);
$q = str_replace("<","",$q);
$q = str_replace(">","",$q);
$q = str_replace("(","",$q);
$q = str_replace(")","",$q);
$q = str_replace('"','',$q);
$q = str_replace("'","",$q);
$q = str_replace("`","",$q);
$q = str_replace("#","",$q);
$q = str_replace("*","",$q);
$q = str_replace("/","",$q);
$q = str_replace(" ","_",$q);
$q = str_replace("\$","",$q);
$q = str_replace("%20"," ","$q");
$q = str_replace("-","_",$q);
$secu1_tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"; 
$secu2_replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
$q = strtr($q,$secu1_tofind,$secu2_replac);
$q = str_replace("\\","_","$q");
$q = strtolower($q);
$qtest = str_replace("_","",$q);
$strlentest = strlen($qtest);
$strlen = strlen($q);
$nocousic = "no";
if ($strlen >= 2 AND $strlen < 50 AND $qtest != "" AND $strlentest >= 2) { $nocousic = "yes"; }
}
echo "Recherche de fonctions PHP (1387 répertorier)";
echo "<form action=index.php method=get>";
echo "<i>Nom entier ou une partie du nom de la fonction :</i><br>";
echo "<input type=text name=q value=".$q."><br>";
if ($color == 1) { echo "<input type=checkbox name=color value=1 checked> Avec colorisation<br>"; }
if ($color != 1) { echo "<input type=checkbox name=color value=1> Avec colorisation<br>"; }
echo "<input type=submit value='Va chercher!'></form>";
echo "<br>Exemples fonctionel : <a href=index.php?q=mysql>index.php?q=mysql</a> & <a href=index.php?q=str+sh>index.php?q=str+sh</a>";
echo "<br><font size=1>Powered with Apache Php Module and MySQL DataBase Server<BR>Cette application utilise des cookies pour vos préférences.</font>";
if ($nocousic == "yes" AND $pagetrip == "yes") {
 $mots = str_replace('+', '-', trim($q));
     $mots = str_replace('\'', ' ', $mots);
     $mots = str_replace(',', '-', $mots);
     $mots = str_replace(':', '-', $mots);
     $tab = explode(' ' , $mots);
      $nb = count($tab);
  
$sqli = "SELECT * FROM phptool_allfunctions WHERE name LIKE '%$tab[0]%' ";

     for($i = 1; $i < $nb; $i++){
       $sqli .= "OR LIKE '%$tab[$i]%'";
     }

     $sqli .= "ORDER BY name ASC";
      $resulti = mysql_db_query($db, $sqli);
$nbrresultati = mysql_num_rows($resulti);
if ($nbrresultati == 0) {
echo "<hr><br><br>Desoler, aucune fonction correspondant à votre recherche n'a été trouver.<BR>"; 
        $tabmov = explode('_' , $mots);
     $nbmov = count($tabmov);
         if ($nbmov > 1) { echo "Avez-vous deja essayer avec les termes suivant :<BR>";

for($imov = 0; $imov < $nbmov; $imov++){
       echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="index.php?q='.$tabmov[$imov].'"><b>'.$tabmov[$imov].'</b></a> ?<br>';
     }
    }
$finol = "yes"; 
}
if ($finol != "yes") {
$pagenbr = (ceil($nbrresultati / $pagination)) - 1;
     $sql = "SELECT * FROM phptool_allfunctions WHERE name LIKE '%$tab[0]%' ";

     for($i = 1; $i < $nb; $i++){
       $sql .= "OR LIKE '%$tab[$i]%'";
     }

      $sql .= "ORDER BY name ASC LIMIT $pagingmin,10";
     //$sql .= "ORDER BY name ASC LIMIT $pagingmin,$pagingmax";
      $result = mysql_db_query($db, $sql);
echo "<hr>Nombre de fonctions trouvée : <b>".$nbrresultati."</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Page";
if ($pagenbr == 1) { echo ": 1 unique"; $nogeneratenumberpage = "yes"; }
if ($pagenbr > 1) { echo "s: "; }
if ($pagenbr > 1 AND $p != 1 AND $p) {
echo '&nbsp;&nbsp;<a href="index.php?q='.$q.'&p=1';
if ($color == 1) { echo "&color=1"; }
echo '" title="Premiere page"><b>«</b></a>';
}
if ($pagenbr > 1 AND $p != 1 AND $p) {
echo '&nbsp;&nbsp;<a href="index.php?q='.$q.'&p='.($p-1).'';
if ($color == 1) { echo "&color=1"; }
echo '" title="Page presedente"><b><</b></a>&nbsp;&nbsp;';
}
while($pagination_cac != $pagenbr AND $nogeneratenumberpage != "yes") {
 $pagination_cac = $pagination_cac+1;

if ($pagination_cac == $maxnumberpage) { $pagination_cac = $pagenbr; $problemewhilerecontrez = "yes"; }
if ($problemewhilerecontrez != "yes") {
 if ($p == $pagination_cac) {
  echo "".$pagination_cac."&nbsp;&nbsp;";
 }
 elseif ($p == "") {
  if ($pagination_cac == 1) {
   echo "".$pagination_cac."&nbsp;&nbsp;";
  }
  else {
   echo '<a href="index.php?q='.$q.'&p='.$pagination_cac.'';
   if ($color == 1) { echo "&color=1"; }
   echo '">'.$pagination_cac.'</a>&nbsp;&nbsp;';
  }
 }
 else {
  if ($pagination_cac == $p) {
   echo "".$pagination_cac."&nbsp;&nbsp;";
  }
  else {
   echo '<a href="index.php?q='.$q.'&p='.$pagination_cac.'';
   if ($color == 1) { echo "&color=1"; }
   echo '">'.$pagination_cac.'</a>&nbsp;&nbsp;';
  }
 }
}
}
if ($pagenbr > 1 AND $pagenbr != $p) { echo '<a href="index.php?q='.$q.'';
if ($color == 1) { echo "&color=1"; }
if (!$p) { echo '&p=2" title="Page suivante"><b>></b></a>'; }
else { echo '&p='.($p+1).'" title="Page suivante"><b>></b></a>'; }
}
if ($pagenbr > 1 AND $pagenbr != $p) {
echo '&nbsp;&nbsp;<a href="index.php?q='.$q.'&p='.$pagenbr.'';
if ($color == 1) { echo "&color=1"; }
echo '" title="Derniere page"><b>»</b></a>';
}
echo "<BR><BR>";
// debut etape "mes dernieres 10 recherches"
if (!$HTTP_COOKIE_VARS["allfunc_indexid"]) {
$reqlop1 = @mysql_query("SELECT * FROM phptool_allfunctions_lsid") or die ('<BR>Erreur SQL LOP#1 (SELECT)!<BR>');
$unbrresultatlop = @mysql_num_rows($reqlop1);
$lopmaxid = $unbrresultatlop +1;
setcookie("allfunc_indexid","$lopmaxid",time()+155520000);
srand((double)microtime()*1000000);
$lop_key = rand(0,32000);
setcookie("allfunc_indexkey","$lop_key",time()+155520000);
$querylop2 = "INSERT INTO phptool_allfunctions_lsid VALUES ('', '$lop_key')";
@mysql_query($querylop2) or die ('<BR>Erreur SQL LOP#2 (INSERT)!<BR>');
$contruct_lopperso = "phptool_af_ls_".$lopmaxid."";
$query = "CREATE TABLE `$contruct_lopperso` (id int(11) NOT NULL auto_increment,idate varchar(255) DEFAULT '0' NOT NULL,iquer varchar(255) DEFAULT '0' NOT NULL,iip varchar(255) DEFAULT '0' NOT NULL,key id (id)) TYPE=MyISAM;";
@mysql_query($query) or die ('<BR>Erreur SQL LOP#3 (CREATE)!<BR>');
$lop_ip = $_SERVER['REMOTE_ADDR'];
$dateactuel1 = date("d/m/Y");
$dateactuel2 = date("G\hi");
$dateactuel3 = "".$dateactuel1." ".$dateactuel2."";
$querylop4 = "INSERT INTO $contruct_lopperso VALUES ('','$dateactuel3','$q','$lop_ip')";
@mysql_query($querylop4) or die ('<BR>Erreur SQL LOP#4 (INSERT)!<BR>');
$loppnoexpretise = "yes";
}
if (ctype_digit($HTTP_COOKIE_VARS["allfunc_indexid"]) AND ctype_digit($HTTP_COOKIE_VARS["allfunc_indexkey"]) AND $loppnoexpretise != "yes") {
$lopppid = $HTTP_COOKIE_VARS["allfunc_indexid"];
$lopppkey = $HTTP_COOKIE_VARS["allfunc_indexkey"];
if ($lopppid < 10000 AND $lopppkey < 33000) {
$reqkilo1 = @mysql_query("SELECT * FROM phptool_allfunctions_lsid WHERE id LIKE '$lopppid'") or die ('Erreur SQL KILO1<BR>');   
$lopppresnbr = mysql_num_rows($reqkilo1);
if ($lopppresnbr == 1) {
$datakilo1 = mysql_fetch_array($reqkilo1);
if ($lopppkey == $datakilo1[keyz]) {
$contruct_lopperso2 = "phptool_af_ls_".$lopppid."";
$lop_ip = $_SERVER['REMOTE_ADDR'];
$dateactuel1 = date("d/m/Y");
$dateactuel2 = date("G\hi");
$dateactuel3 = "".$dateactuel1." ".$dateactuel2."";
$querylop7 = "INSERT INTO $contruct_lopperso2 VALUES ('','$dateactuel3','$q','$lop_ip')";
@mysql_query($querylop7) or die ('Erreur SQL KILO2<BR>');
}
}
}
}
// fin etape "mes dernieres 10 recherches"
$now = 1*$pagingmin+1;
$trouvaille = "no";
while($datav = mysql_fetch_array($result)){
$formatname =  strtoupper(str_replace(' ', '_', $datav[name]));
if ($color == 1) { $formatname = str_replace(strtoupper($q),"<font color=green>".strtoupper($q)."</font>",$formatname); }
echo "<b>".$now.") ".$formatname."();</b>";
if (strtoupper($q) == $formatname) { echo " <font color=red>EXPRESSION EXACT</font>"; }
echo "<br>Documentation : <br>&nbsp;&nbsp;&nbsp;<a href='".$datav[urlfrphpnet]."' target=_blank>Depuis PHP.NET (en français)</a><BR>&nbsp;&nbsp;&nbsp;<a href='".$datav[urlfrnexennet]."' target=_blank>Depuis NEXEN.NET (en français)</a><BR><BR>";
$now = $now + 1;
$trouvaille = "yes";
}
if ($trouvaille == "no") { echo "Erreur : vous tentez accedez à un resultat non trouvable!<BR>"; }
if ($problemewhilerecontrez == "yes") { echo "<b>Erreur : un probleme lors de la recherche à été recontrez, le processus va s'achever pour la securite et la stabilité du serveur.</b><BR>"; exit; }
}
}
// debut afficheur "mes dernieres 10 recherches"
echo "<br><br><br><i>Mes 10 dernires recherches :</i><BR>";
if (ctype_digit($HTTP_COOKIE_VARS["allfunc_indexid"]) AND ctype_digit($HTTP_COOKIE_VARS["allfunc_indexkey"])) {

$lopppid = $HTTP_COOKIE_VARS["allfunc_indexid"];
$lopppkey = $HTTP_COOKIE_VARS["allfunc_indexkey"];
if ($lopppid < 10000 AND $lopppkey < 33000) {
$reqkilo1 = @mysql_query("SELECT * FROM phptool_allfunctions_lsid WHERE id LIKE '$lopppid'") or die ('Erreur SQL KILO1<BR>');   
$lopppresnbr = mysql_num_rows($reqkilo1);
if ($lopppresnbr == 1) {
$datakilo1 = mysql_fetch_array($reqkilo1);
if ($lopppkey == $datakilo1[keyz]) {
$contruct_lopperso3 = "phptool_af_ls_".$lopppid."";
$reqkilo8 = @mysql_query("SELECT * FROM $contruct_lopperso3 ORDER BY id DESC LIMIT 0, 10");
$kilolololonbr = 0;
while($data8 = mysql_fetch_array($reqkilo8)){
$kilolololonbr = $kilolololonbr + 1;
echo "&nbsp;&nbsp;&nbsp;&nbsp;".$kilolololonbr.") <b>".$data8[iquer]."</b> le ".$data8[idate]."";
echo '&nbsp;&nbsp;<a href="index.php?q='.$data8[iquer].'';
   if ($color == 1) { echo "&color=1"; }
   echo '">[relancer la recherche]</a><br>';
$lastseekok = "yes";
}
}
}
}
}
 if ($lastseekok != "yes") { echo "<i>Aucune recherche n'a été effectuer</i>"; }
//fin afficheur "mes 10 denrires recherches"
mysql_close();
echo "</body></html>";
?>

Conclusion :


Les 2 tables sql sont dans le zip.

Si vous trouvez de petits bugs ou des fonctions qui n'apparaisent pas dans la liste contactez-moi.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.