Version complète: sur le forum Webmaster Hub : moteur de recherche synonymes
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
william_dallas
Bonjour,

Je suis entrain de développer le moteur de recherche pour mon site et j'ai fait une fonction similaire aux synonymes de google (c-a-d que lorsque vous orthographier mal un mot, un lien vous propose la bonne orthographe).

Jusque là tout va bien mais je me demande comment je peux faire pour renvoyer le mot proposer en lien dans le champ texte de recherche.

Mon formulaire avec la barre de recherche:
CODE
<form class="search-form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="get">
                    <div class="search-div">
                        <input type="text" class="input-text" name="query" size="70px" value="<?php echo $displayQuery ?>" />
                        <input type="submit" class="input-submit" value="Search" />
                        <br />
</form


Ma fonction qui retourne les synonymes :
CODE
if($results->synonyme[0]!=null)
                echo "<p style=\"font-weight: bold;\">Essayez avec cette orthographe :<a href=***c'est là que je bloque***>".$results->synonyme[0]."</p>";
            else
                echo "<p style=\"font-weight: bold;\">Les termes de recherche spécifiés - ". ."– ne correspondent à aucun document.<br />}


Voilà, si vous avez une idée, je la prend.merci
++
TheRec
Bonjour,

ta recherche initiale est effectuée via un formulaire utilisant la méthode "GET", ainsi les valeurs définie dans ce formulaire sont passée par l'URL, par la querystring c'est-à-dire tout ce qui vient après le premier point d'interrogation dans l'URL.

Ainsi tu peux "simuler" la soumission du formulaire en composant ton URL de la même manière que ton navigateur le fait lorsqu'il est soumis par un utilisateur. Le format pour passer une variable GET est le suivant :
CODE
echo '<p style="font-weight: bold;">Essayez avec cette orthographe :<a href="script_de_recherche.php?query='.urlencode($results->synonyme[0]).'">'.$results->synonyme[0].'</p>';

La fonction urlencode sert à gérer les caractères "spéciaux", si tu souhaite utiliser cette variable par la suite tu peux la passer dans urldecode. Bien sûr l'adresse du lien est à modifier, ainsi que le nom de la variable (query) si nécessaire.
william_dallas
Ok, j'ai compris le principe mais <a href="script_de_recherche.php?query='.urlencode($results->synonyme[0]).'"> ne me retourne pas mon synonyme mais "Array[0]", je ne comprends pas pourquoi. Any other idea?
Leonick
comme on ne sait pas comment est créé $results->synonyme[0] on ne peut pas dire.
Visiblement tu dois utiliser des fonctions preg ou similaires qui vont te créer des array à plusieurs niveaux
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.