Voting

: eight plus one?
(Example: nine)

The Note You're Voting On

elyknosrac at gmail dot com
15 years ago
Using preg_match_all I made a pretty handy function.

<?php

function reg_smart_replace($pattern, $replacement, $subject, $replacementChar = "$$$", $limit = -1)
{
if (!
$pattern || ! $subject || ! $replacement ) { return false; }

$replacementChar = preg_quote($replacementChar);

preg_match_all ( $pattern, $subject, $matches);

if (
$limit > -1) {
foreach (
$matches as $count => $value )
{
if (
$count + 1 > $limit ) { unset($matches[$count]); }
}
}
foreach (
$matches[0] as $match) {
$rep = ereg_replace($replacementChar, $match, $replacement);
$subject = ereg_replace($match, $rep, $subject);
}

return
$subject;
}
?>

This function can turn blocks of text into clickable links or whatever. Example:

<?php
reg_smart_replace
(EMAIL_REGEX, '<a href="mailto:$$$">$$$</a>', $description)
?>
will turn all email addresses into actual links.

Just substitute $$$ with the text that will be found by the regex. If you can't use $$$ then use the 4th parameter $replacementChar

<< Back to user notes page

To Top