Results 1 to 2 of 2

Thread: pre_replace not sure what the correct expression is

  1. #1

    pre_replace not sure what the correct expression is

    Hi all

    I need to scan a block of body copy that will replace certain words within the copy with other words.

    I can do this is and got this part working.

    How ever i need it to replace only words out side of any html tags. <.*> </.*> < />

    So if the word appears in a link its ignored.

    Any ideas on how to do this?

    my code so far

    PHP Code:

    $patterns
    [] = '/'.$tag.'(?![^<]*>)/i';
    $replacements[] = '<a  href="'/'.$tag.'"  >'.$tag.'</a>'; 
    Thanks

  2. #2
    jwilliam's Avatar
    476
    posts
    An intellectual carrot!
    You could try something like this:

    preg_replace("~(>.*?)(word)(.*?<)~s", '${1}new_word$3', $data);

    Of course, your tags would all need to be balanced and your html characters (namely '>' and '<') would need to be encoded (ie, '&gt;' and '&lt;'). At the very least, that should get you closer... good luck!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Home About kirupa.com Meet the Moderators Advertise

 Link to Us

 Credits

Copyright 1999 - 2012