I think you can do this with preg_replace .
Searches for the topic of matches with the pattern and replaces their replacement.
You can set the limit at a time when the word will be replaced.
limit: The maximum possible replacement for each template in each item is a string. The default is -1 (no limit).
So, I think that you can make a function that first, consider that "Web Development" has its own text, and then you do:
$text = preg_replace("web development", "<a href='http://www.exemple.com'>web development</a>", $text, 1);
x times
Remember the preg_replace function:
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
See the link in the PHP manual.
source share