Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New Coder
    Join Date
    Mar 2007
    Thanked 0 Times in 0 Posts

    How to make replacement, only replacing once

    Hi guys, below are custom code to replacing text into link, for example

    Google text, will be like this Google
    Yahoo text, will be like this Yahoo

    the replacement mod below are working well until now

    now i just need a little fix again, to make it better again
    i need it now only replacing once, so not too many links if the text appear few times

    please share your knowledge guys, how to do that

    PHP Code:
    $words = array(
    'Google' => 'http://www.google.com',
    'Yahoo' => 'http://www.yahoo.com'

    $exp = array();
    $rplc = array();
    foreach (
    $words as $word => $url)
    $exp[] = '/ ' preg_quote($word) . ' /i';
    $rplc[] = ' <argh href="' $url '">' $word '</argh> ';

    $this->post['message'] = preg_replace($exp$rplc$this->post['message']);
    $this->post['message'] = preg_replace_callback("#(<a [^>]*>)((?:[^<]|<(?!/?a>)|(?R))+)(</a>)#"create_function('$a''return $a[1] . preg_replace("#<argh[^>]*>(.*?)</argh>#", "$1", $a[2]) . $a[3];'), $this->post['message']);
    $this->post['message'] = preg_replace(array('#<argh #''#</argh>#'), array('<a ''</a>'), $this->post['message']); 
    Whats up

  • #2
    Regular Coder
    Join Date
    Mar 2005
    Thanked 1 Time in 1 Post
    I think you are talking about too many duplicates? if so, then array_unique is what you need


    Posting Permissions

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