Web Analytics Made Easy -
StatCounter How to make replacement, only replacing once - CodingForum

Announcement

Collapse
No announcement yet.

How to make replacement, only replacing once

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new 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
    I think you are talking about too many duplicates? if so, then array_unique is what you need

    Comment

    Working...
    X