ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-db
php-db
Re: [PHP-DB] eregi sentence
by Ivan Fomichev other posts by this author
Nov 30 2003 4:56PM messages near this date
[PHP-DB] eregi sentence | [PHP-DB] Berkeley DB Btree
Hello Nikos,

Sunday, November 30, 2003, 10:29:19 AM, you wrote:

NG>  Can somebody tell me what is wrong with the following?
NG>  $body=eregi_replace("<a href=\"(.+)\"([^>]*)>(.+)</a>", "<a href=\"\\1\"
NG>  target=\"_blank\" class=\"down_txt\"><strong>\\3</strong></a>", $body);

1) /.+/ is too greedy. You should use something like /[^"]+/ or /.+?/ instead
   (second is supported only in Perl-compatible regexps). The best solution
   could be /[^'"]+?/ however.
2) /<a / doesn't match "\n" after "a".

   $body = preg_replace(
       '#<[Aa]\s[^> ]*?[Hh][Rr][Ee][Ff]\s*=\s*([\'"])([^\'">]+?)\1[^>]*?>' .
           '([^<]*?)</a[^> ]*?>#s',
       '<A href="\2" target="_blank" class="down_txt"> ' .
           '<strong> \3</strong></a>',
       $body
   );

   This regexp is not perfect, but I hope it has enough margin of safety, at
   least if your HTML code is more or less correct. E. g., all href values
   must be quoted and '<', '> ', '"' and "'" without special meaning must be
   written as HTML entities.
   
-- 
Best regards,
 Ivan                            mailto:johnny@[...].ru

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Thread:
Nikos Gatsis
Ivan Fomichev

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved