Jump to content

Small trouble with preg_replace


young_coder

Recommended Posts

Hey guys!

I'm working on this little script but I’m novice with PHP and I can not find out solution for this alone, so please will somebody help me.

Link looks like this:

<a href="word1-word2-word3">word1-word2-word3</a>

And I need to be without hyphens like this in part highlighted with red

<a href="word1-word2-word3">word1 word2 word3</a>

 

Here is my script

 

<?

function makeLinksFromWords($text)

{

$text = html_entity_decode($text);

$text = " ".$text;

 

$text = preg_replace('/ link:(\S+)/', ' <a href="$1">$1</a>', $text);

return $text;

}

 

// Live Example

echo makeLinksFromWords("This is a example for link link:word1-word2-word3");

?>

 

 

Would appreciate some help with this one and thank you advance

Cheers!

Link to comment
https://forums.phpfreaks.com/topic/192806-small-trouble-with-preg_replace/
Share on other sites

To manipulate the value in the replacement (i.e. what becomes the <a> tag) you can use a callback like:

 

function makeLinkFromMatch($match)
{
    $link = $match[1];
    $text = str_replace('-', ' ', $match[1]);
    return sprintf(' <a href="%s">%s</a>', $link, $text);
}

 

You would then need to change preg_replace to instead use preg_replace_callback:

 

$text = preg_replace_callback('/ link:(\S+)/', 'makeLinkFromMatch', $text);

 

If you haven't use preg_replace_callback before, it may be a little confusing so do check out the documentation for it and ask here if you're unsure.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.