Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
  #1  
Old 02-08-2013, 02: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

Thread Tools
Display Modes

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 09:19 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03700 seconds
  • Memory Usage 2,159KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete