Delimiteur de chaine > principe google.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 993 fois - Téléchargée 34 fois

Contenu du snippet

Ce code est issu de mon projet de moteur de recherche que j'affectionne toujour autemps!
C'est un peu difficile à expliquer sont principe mais il est assez "pro" de mettre ce code dans vos annuaires & futurs moteur de recherche :p
Le principe :
- On donne une chaîne de caractére, plutôt longue de preference de type : la source d'une page web, sans les balises html.
- Puis on lui indique le mot clef à encercler.
- Il l'entour à x char aprés et x char avant.
Il n'a pas été fini (le projet) dut faite que je recontrais pas mal de difficulté avec mon hebergeur et ces opinions sur les nom de domaines [...].
J'espere que ce code vous plaira comme il ma donner un trés grand sourire lorsque je l'ait reussi :)
Je vous le donne tel quel il était dans mon moteur.

Source / Exemple :


function str_replace_once($needle , $replace , $haystack){  // fonction qui met en gras que le premier str_remplace
  $pos = strpos($haystack, $needle); 

  if ($pos === false) { 
  return $haystack; 
  } 
  return substr_replace($haystack, $replace, $pos, strlen($needle)); 
}

 function transegg($chaine, $qg) {
$transe =  $chaine;
 $transg1 = str_replace_once($qg, "£<b>$qg</b>", $transe);

$transg2 = strpos($transg1, "£");
$transg3 = $transg2 + 100;
$transg4 = substr($transg1, 0, $transg3);

$transg5 = $transg2 - 100;
if ($transg5 < 0) { 
$transgdiff1 = str_replace("-","","$transg5");
$transgdiff2 = 100 - $transgdiff1;
$transg6 = substr($transg4, $transgdiff2); 
}
if ($transg5 > 0) { 
$transg6 = substr($transg4, $transg5); 
}
$transg7 = str_replace("£","","$transg6");
$transg8 = str_replace($qg,"<b>$qg</b>","$transg7");
return $transg8;
}
$machaine ="aaaaaaaaaaaaaiojoijfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffo rio oijoijo iohferfzzefzefzefrzfzefrffziohoh ijoijoijo oijiueeeeeee phpcs eeeeeeeeeeeeeeeeeeeeeeeeeeeehiguyg yugug joijoijoijojel phpcs jofffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ijojio yuguyguyg nonoinoinon yvytvyctrc iojiojonoin pjpojvytcyvibh unbibuyvytvty oinhiubvcty ffffffffffffijoijioh";
$clef = "phpcs";
echo '<font size=2 color=black>...'; echo transegg($machaine, $clef); echo '...</font><BR>';

Conclusion :


Ici, on decoupe de 100 char avant & aprés la coordoné de la premiere clef.

J'adore faire des algorythme de formatage de donnée, donc si vous avez choses pour moi, je les prends ;)

PS : lorsque vous entrez dans la table sql, le champ responsable de la sortie, enlever les caractéres £ et € c'est les caractéres d'encerlements (utiliser str_remplace).
Au passage bonjour GG ;)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
13 juillet 2007

ba il existe une fonction qui élimine les balises html et php
ya : string fgetss($un_pointeur_sur_un_fichier) pour lire apartir d'un fichier html
ou bien : string strip_tags( $une_chaine_contenant_des balises_html)
ba je te conseille de creer dans la base de donnée une table contenant
le mot clé et l'url associé . ainsi au cours de la recherche ,le moteur
prend l'url qui contient le mot clé souhaiter puis accede a la page
puis extracte le texte complet ou figure le mot clé.
c mon idée,parceke je va is faire un moteur de recherche externe , c mon sujet de stage (souhaitez moi bonne chance ).
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

algorythme -> algorithme
et l'étude des algos c'est l'algorithmique, au passage.

tu devrais mettre le décalage de +-100 caractères en paramètre de ta fonction aussi :)
Messages postés
188
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
25 avril 2009

ok c plus clair
thx
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Cela ne me posse aucun probléme!

A la base, je rentrer une valeur issu d'une table sql sous une while (mysql_fetch_array...).
Je rentrer le code de la page, sans les balises html, que je tuer avant de les mettres dans la base sql (depuis le robot).
Une recherche est effectuer sur toute la table suivant :
CHAMPSOURCEPAGESQL = mot clef AND mot clef ....
Pour eviter de sortir 50lignes d'une source de page, je sortez que là où le mot clef à été trouver, exemple utiliser par Google :
Source de la page www.phpcs.com decortiquer des balises HTML en tout genre, lorsqu'on recherche le mot clef : phpcs sous google :
On obtient ceci en graphique :


PHPCS.Com | PHP Codes Sources ! : 1 501 sources PHP, Source, Code ...
PHP codes sources www.phpcs.com CodeS-SourceS est hébergé par Frontier. Codes
(1 501): Les plus populaires du mois ; Les plus populaires ...
www.phpcs.com/ - Pages similaires

Mon code fait "pratiquement" pareil que google, sauf qu'il me faut encore pas mal d'heures de travaille pour faire un decorticage individuel des mots clefs...

Dans l'exemple donnée-ci dessous :

$machaine ="aaaaaaaaaaaaaiojoijfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffo rio oijoijo iohferfzzefzefzefrzfzefrffziohoh ijoijoijo oijiueeeeeee phpcs eeeeeeeeeeeeeeeeeeeeeeeeeeeehiguyg yugug joijoijoijojel phpcs jofffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ijojio yuguyguyg nonoinoinon yvytvyctrc iojiojonoin pjpojvytcyvibh unbibuyvytvty oinhiubvcty ffffffffffffijoijioh";
$clef = "phpcs";


Sur l'ecran (en affichage) ont obtient :

...ffffffffffffffffffffffffffffffo rio oijoijo iohferfzzefzefzefrzfzefrffziohoh ijoijoijo oijiueeeeeee phpcs eeeeeeeeeeeeeeeeeeeeeeeeeeeehiguyg yugug joijoijoijojel phpcs joffffffffffffffffffffff...

Voila le principe ! j'été vraiment trés trés heureux d'avoir put faire ce genre de code!

Je suis ouvert à toutes vos critiques, commentaires.
Messages postés
188
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
25 avril 2009

iop,
dis moi tu peux expliquer plus clair a koi sert ton code,
chez moi les explication sont coupées.
de plus je me demande kel est le but concret du code.
thx

have fun ;)

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.