Webmaster Hub: [Perl] Highlighting de code HTML - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

[Perl] Highlighting de code HTML Noter : -----

#1 L'utilisateur est hors-ligne   Nanane 

  • Groupe : Membre
  • Messages : 89
  • Inscrit(e) : 27-avril 07
  • Genre:Homme
  • Localisation:Ivry sur Seine
  • Société:Wister

Posté 06 juillet 2007 - 11:19

Bonjour,

Voila je dois trouver une solution pour pouvoir, a partir d'une chaine de caractère, la "highlighter" dans une page Web.
J'ai donc ma chaine: $select.
et les données de la page : $data.

Et je dois insérer des balises pour highlighter $select dans $data. Seulemt $select est en texte, et $data contient des balises HTML.

J'ai donc tester de prendre $select et de le modifier en Regexp pour qu'il ignore toutes les balises entre chaque mot, mais la ponctuation et les espaces me jouent des mauvais tours (le temps de traitement devient trop long). Donc je me demandais si vous aviez une solution.

Voici ma regexp au cas ou :
$select =~ s/([&#;\w]+|[^&#;\w]+)/$1\(\\s\*<\.\*\?> \\s\*\)\*/g ;

pour ensuite faire :
if($data =~ m/$select/si)
{#insertion des balises de highlight;}
Je suis chauve, mais j'ai une queue de cheval.
0

#2 L'utilisateur est hors-ligne   Nanane 

  • Groupe : Membre
  • Messages : 89
  • Inscrit(e) : 27-avril 07
  • Genre:Homme
  • Localisation:Ivry sur Seine
  • Société:Wister

Posté 10 juillet 2007 - 14:10

J'ai tenté d'utiliser HTML::Highlight mais sans reussite.

Voila le code de ma fonction difference :
sub difference
{
($urldiff,$datadiff) = _AT__;
use DBI;
use HTML::Entities;
use HTML::Highlight;
use utf8;

if(utf8::is_utf8($datadiff))
{print "data is utf8.";}    
else
{utf8::encode($datadiff);}


decode_entities($datadiff);

$dbh = DBI->connect($DBSOURCE, $USER, $PASS);
$sel = $dbh->prepare("SELECT selection, langues FROM totranslate WHERE url='$urldiff';");
$sel->execute || die "probleme de requete $DBI::errstr";


my $highlighted_data;

while(($select,$langues) = $sel->fetchrow() )
{
  _AT_langs_d = listlangues($langues);
  utf8::decode($select);
  _AT_selects =split (/\W/,$select);
  
        my $hl = new HTML::Highlight (
                words => [@selects],
                wildcards => [],
                colors => [],
                czech_language => 0,
                debug => 0);
  
   $highlighted_data = $hl->highlight($datadiff);
}

print $highlighted_data;

$sel->finish;
$dbh->disconnect;
return true;
}



Une idée peut etre ?
Ma fonction n'affiche rien du tout a l'ecran...

Ce message a été modifié par Nanane - 10 juillet 2007 - 14:11.

Je suis chauve, mais j'ai une queue de cheval.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)