substrr_replace - substition af streng bagfra!
Hej eksperterJeg leder efter en funktion der kan erstatte den sidste (og KUN den sidste) instans af en delstreng i en større streng.
Dvs jeg har:
$bigstring = '....'; // binært indhold
$searchstring = 'blabla1'; // søgestrengen
$replacestring = 'blabla2'; //erstatningsstrengen
så skal den sidste 'blabla1' i $bigstring erstattes med 'blabla2'
På nuværende tidspunkt bruger jeg følgende som er gaflet fra php.net:
/**
* Replace only the last occurence of the search string with the replacement string
* @param string $string
* @param string $search
* @param string $replace
* @return string
* @access public
*/
function replaceLast($string, $search, $replace) {
$pos = false;
if (is_int(strpos($string, $search))) {
$endPos = strlen($string);
while ($endPos > 0) {
$endPos--;
$pos = strpos($string, $search, $endPos);
if (is_int($pos)) {
break;
}
}
}
if (is_int($pos)) {
$len = strlen($search);
return substr_replace($string, $replace, $pos, $len);
}
return $string;
}
Den virker dog håbløst langsomt og det må kunne gøres *meget* smartere! Måske vha. en regexp, som jeg dog ikke er superskarp til!
Det er vigtigt, at funktionen er binary-safe, da den skal udføres på en binær streng.
På forhånd tak.
Mvh Tommy
