Jump to content
Sign in to follow this  
Nanane

[Perl] Highlighting de code HTML

Rate this topic

Recommended Posts

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;}

Share this post


Link to post
Share on other sites

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...

Edited by Nanane

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...