Bonjour à tous et à toutes,
Nous avons comme projet de créer le premier moteur de recherche humanitaire qui a pour nom Doona (www.doona.fr). Exalead a accépté d'être notre partenaire pour l'affichage des résultats. Cependant, vu qu'il ne dispose pas de flux XML propre, nous devons parser leur page. Et j'ai essayé mais j'ai quelques problèmes (ce n'est pas mon métier que d'être dévelloppeur PHP) :
Il est impossible de changer de language (international ou francais), lorsque l'on recherche plusieurs mots, seul le premier est pris en compte, un petit problème avec les liens de pages en bas aussi... Aussi, j'ai remarqué en faisant des textes sur exalead que lorsque l'on cherche des caractères étranges se mettent après "
[ Lien ]&..." je pense notament qu'ils sont liés au menu de gauche mais aussi que certaines informations transitent par cette variable dynamique... Mais je ne vois pas comment pouvoir la retrouver...
Je met tout le code ci-dessous afin que vous puissiez y jeter un coup d'oeil... Merci d'ores et déjà de votre aide !
PROBLEME 1 : Les liens pour les pages 1,2,3,4,5... vont vers l'infini qu'il y aient ou non des autres pages (ex: "
[ Lien ]")
PROBLEME 2 : Lorsque l'on utilise des guillemets, ils sont mal affiché dans la barre de recherche (ex: "
[ Lien ]")
PROBLEME 3 : Exalead ne prend en compte que le premier mot même si on met une expression ou autres...
PROBLEME 4 : Le Da Exalead Code qui pour moi ne signifie rien a l'air de pourtant signifier quelque chose...
Index.php
[code]<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8">
<?php
include "incl.php";
?>
<title>Recherche Doona :
<?php
$aff=htmlentities($_GET['q']);
echo $aff;
?>
</title>
<style type="text/css">
<!--
.titre-blanc {
color: #FFFFFF;
font-size: 14px;
}
.titre-liens {
color: #AA1111;
font-size: 17px;
font-family: Arial;
}
.titre-liens a{
color: #AA1111;
font-size: 17px;
font-family: Arial;
}
.titre-liens a:hover{
color: #AA1111;
font-size: 17px;
font-family: Arial;
}
.desc-liens {
color: #000000;
font-size: 14px;
font-family: Arial;
}
.adresse-liens {
color: #CC3333;
font-size: 11px;
font-family: Arial;
}
.menu {font-size: 12px}
.texte {font-size: 14px}
.ecriture-mini {font-size: 10px; }
.MOYENNE-GRAS { font-size: 12px;
font-weight: bold;
}
-->
</style>
</head>
<body>
<table width="500" border="0" cellpadding="0" cellspacing="0">
<tbody><tr><td width="150" height="84" valign="middle"><a href="
http://assodoona.free.fr"><img src="../images/doonamini.gif" alt="Accueil de Doona" width="150" height="60" vspace="12" border="0" align="absmiddle"></a></td>
<td width="418" valign="middle"><table width="360" border="0" align="center" cellpadding="0" cellspacing="0">
<form action="
[ Lien ]" name="f" class="ecriture-mini">
<tr>
<td width="360" align="left" valign="middle" nowrap><div align="left">
<input name="q" type="text" id="q" onKeyUp="changeVal();" value="<?php echo $aff; ?>" size="35" autocomplete="off">
<input name="submit2" type="submit" value="Recherche">
<br>
<span class="menu"><img src="../images/exalead.gif" width="96" height="34" vspace="5" align="absmiddle">
<input name="st" value="int" <?php if($_GET[st]=='int'){echo 'checked="checked"';} ?> type="radio">
Web international
<input name="st" value="local" <?php if($_GET[st]=='local'){echo 'checked="checked"';} ?> type="radio">
Web francophone</span>
<input name="hl2" type="hidden" id="hl" value="fr">
</div></td>
</tr>
</form>
</table></td>
</tr>
</tbody></table>
<table width="490" height="101" border="0" cellpadding="0" cellspacing="10">
<tbody>
<tr>
<td width="470" height="81" align="left" valign="middle"><div align="center">
<div align="left">
<fieldset>
<legend><span class="police-normale">Publicités rémunérant l'association</span>. </legend>
<div align="center"><img src="../images/pub.gif" width="468" height="60"><br>
<span class="ecriture-mini">Recherche partenaire publicité (bannière CPM 1 à 2€)</span> </div>
</fieldset>
</div>
</div></td>
</tr>
</tbody>
</table>
<table bgcolor="#e5ecf9" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr>
<td width="20" align="right" nowrap="nowrap" bgcolor="#CC3333" class="titre-blanc"> </td>
<td width="179" align="right" nowrap="nowrap" bgcolor="#CC3333" class="titre-blanc"><p align="left"><span class="Style1 Style4"><font size="+1">Résultats de la recherche</font></span></p></td>
<td width="787" align="right" nowrap="nowrap" bgcolor="#CC3333" class="titre-blanc"><?php echo "Résultats <b>".($n+1)."</b> à <b>".$nmax."</b> pour <b>".$aff."</b>"; ?></td>
<td width="20" align="right" nowrap="nowrap" bgcolor="#CC3333" class="titre-blanc"> </td>
</tr></tbody></table>
<?php
if($nb=="Aucun résultat trouvé"){
echo "Votre recherche n'a pas abouti ; Aucun résultat disponible !";}
else {
$i=1;
while($i<11){
echo "<div class='titre-liens'><a href=".$liens[$i].">".$titres[$i]."</a></div><div class='desc-liens'>".$descs[$i]."</div><div class='adresse-liens'>".$liens[$i]."</div><br>";
$i++;}
include "page.php";}
?>
<center>
<p>
<table width="100%" height="43" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td height="43" align="center" valign="middle" bgcolor="#CC3333"><table border="0" align="center" cellpadding="0" cellspacing="0">
<form action="
[ Lien ]" name="f" class="ecriture-mini">
<tr>
<td align="left" valign="middle" nowrap>
<div align="left">
<input name="st" type="hidden" id="hl22" value="int">
<input name="q" type="text" id="q" onKeyUp="changeVal();" value="<?php echo $aff; ?>" size="40" autocomplete="off">
<input name="submit" type="submit" value="Recherche">
<input name="hl" type="hidden" id="hl2" value="fr">
<br>
</div></td>
</tr>
</form></table></td>
</tr></tbody></table>
</center><center>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td align="center" valign="middle" class="ecriture-mini"><br>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="260">
<tbody>
<tr>
<td width="20%" align="center" n class="ecriture-mini"><a href="aide.php?page=apropos">A propos</a> - <a href="
[ Lien ]" target="_blank">Blog</a> - <a href="aide.php?page=help">Aide</a> - <a href="aide.php?page=contact">Contact</a></td>
</tr>
</tbody>
</table></td>
</tr>
<tr>
<td height="6" class="ecriture-mini"><div align="center">Résultats de la recherche affichés grâce à <a href="
[ Lien ]" target="_blank">Exalead</a><br>
Moteur de recherche © <a href="index.php">Doona</a><br>
</div></td>
</tr>
</tbody>
</table>
</center></body></html>[/code]
Incl.php
[code]<?php
if($_GET[p]==""){
$_GET[p]=1;}
$q=$_GET['q'];
$n=($_GET['p']-1)*10;
/* scope= all OR language OR country */
if($_GET['st']=="local"){
$scope="language";}
if($_GET['st']=="int"){
$scope="all";}
$search="";
$file = "http://exalead.fr/search/C=0MGwAMwA%3d/?U=&C=0MGwAMwA%3D&2t=0&2q=&language=fr&2n=".$n."&q=".$q."&scope=".$scope;
$open = fopen($file,"r");
while (!feof($open)) {
$search .=fgets($open, 4096);
}
$max=split('<span>documents 1-', $search);
$nmaxs=split('<a', $max[1]);
$nmax=$nmaxs[0];
$nbresult=split('<td class="s40"><b>', $search);
$nb4=split('</b>', $nbresult[1]);
$nb3=$nb4[0];
$nb2=explode(".", $nb3);
$i=0;
$long=sizeof($nb2);
while($i<$long){
$nb.=$nb2[$i];
$i++;}
$virelehaut=split('<td class="d1" valign="middle">', $search);
$i=1;
while ($i<($nmax+1)) {
$hautvirer .=$virelehaut[$i]."<br><br><br>";
$i++;
}
$virelebas=split('<table', $hautvirer);
$hautvirer=$virelebas[0];
$i=0;
while($i<($nmax)){
$no=$n+$i;
$hautvirer=str_replace('/redir?n='.$no.'&u=http%3a%2f%2f', 'http://', $hautvirer);
$i++;}
$hautvirer=str_replace('%2f', '/', $hautvirer);
$lesliens=split('<a class="s46" href="', $hautvirer);
$i=1;
$liens=array();
$titres=array();
while($i<($nmax+1)){
$lien=split('"', $lesliens[$i]);
$liens[$i]=$lien[0];
$lestitres=split('<a class="s46" href="'.$liens[$i].'">', $hautvirer);
$lestitres=$lestitres[1];
$lestitres=split('</a>', $lestitres);
$titres[$i]=$lestitres[0];
$i++;
}
$descs=array();
$lesdescs=split('<div class="s47">', $hautvirer);
$i=1;
while($i<($nmax+1)){
$descriptions=split('</div>', $lesdescs[$i]);
$descs[$i]=$descriptions[0];
$i++;
}
$i=1;
$liens=array();
while($i<($nmax+1)){
$lien=split('"', $lesliens[$i]);
$liens[$i]=$lien[0];
$i++;
}
?>[/code]
Page.php
[code]<?php
$p=$_GET['p'];
if($p==""){
$p=1;}
echo "<table width='100%' height='22px' border='0' align='center' cellpadding='0' cellspacing='0'>
<tbody>
<tr>
<td align='center' valign='middle' class='ecriture-mini'><table border='0'>
<tr>";
if($p<5){
$p1=1;
$p2=2;
$p3=3;
$p4=4;
$p5=5;
$p6=6;
$p7=7;
$p8=8;
$p9=9;
$p10=10;
}
else if (($n+10)>195) {
$p1=191;
$p2=192;
$p3=193;
$p4=194;
$p5=195;
$p6=196;
$p7=197;
$p8=198;
$p9=199;
$p10=200;}
else {
$p1=$p-4;
$p2=$p-3;
$p3=$p-2;
$p4=$p-1;
$p5=$p;
$p6=$p+1;
$p7=$p+2;
$p8=$p+3;
$p9=$p+4;
$p10=$p+5;}
$table = array($p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8,$p9,$p10);
$pp=$p-1;
$ps=$p+1;
if($p>1){
echo "<td width='14'><a href='http://assodoona.free.fr/search/?q=".$_GET[q]."&hl=fr&submit=Recherche&st=".$_GET[st]."&p=".$pp."'><img src='http://assodoona.free.fr/images/prec.gif' alt='Precedent' border='0' align='absmiddle'></a></td>";}
$i = 0;
while ($i < 10) {
if($table[$i]==$p){
echo "<td width='14'><b>".$table[$i]."</b></td>";}
else {
echo "<td width='14'><a href='http://assodoona.free.fr/search/?q=".$_GET[q]."&hl=fr&submit=Recherche&st=".$_GET[st]."&p=".$table[$i]."'>".$table[$i]."</a></td>";}
$i++;}
echo "<td width='14'><a href='http://assodoona.free.fr/search/?q=".$_GET[q]."&hl=fr&submit=Recherche&st=".$_GET[st]."&p=".$ps."'><img src='http://assodoona.free.fr/images/suiv.gif' alt='Suivant' border='0' align='absmiddle'></a></td></tr></table>";
?>[/code]
Merci à tous ceux qui nous aiderons...