[ create a new paste ] login | about

Link: http://codepad.org/H4MZCiLd    [ raw code | output | fork ]

PHP, pasted on Jul 6:
<?php
$string = 'Old string Old more string Old some more string';
$search = 'Old';

echo str_ureplace($search, 'foo', $string);

function foo ($search, $number) {
    return 'New' . $number;
}

/**
 * str_ureplace
 * 
 * str_replace like function with callback
 * 
 * @param string|array search
 * @param callback $callback
 * @param string $subect
 * @param int $replace_count
 * @return string
 */
function str_ureplace($search, $callback, $subject, &$replace_count = null) {
    $replace_count = 0;
    foreach(((array) $search) as $needle) {
        $len = strlen($needle);
        while(($pos = strpos($subject, $needle, $pos)) !== false) {        
            $replace = call_user_func($callback, $needle, ++$replace_count);
            $subject = substr_replace($subject, $replace, $pos, $len);
        }
    }
    return $subject;
}


Output:
1
New1 string New2 more string New3 some more string


Create a new paste based on this one


Comments: