Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-08-2013, 01:26 PM
y2ksw's Avatar
y2ksw y2ksw is offline
 
Join Date: Aug 2003
Location: Italy
Posts: 1,418
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Autolinker and PCRE problem

I'm currently building a much needed Autolinker for vBulletin 4 (much like GAL) for release on vbulletin.org, and have the following issues with PCRE and replacing contents outside HTML tags:
  1. Words with accents are not recognized as full words, thus a replacement for 'pi?' with 'x' results in 'xx' for 'pi?pi?'. But at most I can live without it.
  2. Rules are not considering the tail of a string, so I must add a character ad the end, and remove later (and this, too, is a minor concern)
However, before realeasing a hack instead proper code, I would like to ask a PCRE professional for help on this problem. Here below is the code ready to paste into a php file:
PHP Code:
<?php
function pcre_cb($matches)
{
    return 'x';
}

$subject = 'pi? o pi?pi? o meno 1 <a href="abc.it">pi? o pi?pi? o meno 2</a> pi? o pi?pi? o meno 3 <a href="abc.it">pi? o pi?pi? o meno 4</a> pi? o pi?pi? o meno 5';
$pattern = '#\\b(pi?|abc\\.it)(?![^<]*>*(</|$))#im';
$text = preg_replace_callback($pattern, 'pcre_cb', $subject . '<');

echo nl2br(htmlspecialchars($text));
die;
Result:
Code:
x o xx o meno 1 <a href="abc.it">pi? o pi?pi? o meno 2</a> x o xx o meno 3 <a href="abc.it">pi? o pi?pi? o meno 4</a> x o xx o meno 5<
Wanted:
Code:
x o pi?pi? o meno 1 <a href="abc.it">pi? o pi?pi? o meno 2</a> x o pi?pi? o meno 3 <a href="abc.it">pi? o pi?pi? o meno 4</a> x o pi?pi? o meno 5
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:06 AM.


Powered by vBulletin® Version 3.9.0
Copyright ©2000 - 2017, vBulletin Solutions Inc.