PHP – String – Reemplazar primera ocurrencia
Función que reemplaza sólo la primera ocurrencia, empezando a buscar desde al izquierda, de un texto determinado por otro.
El reemplazo se realiza sin importar las mayúsculas y minúsculas. Si no existe la ocurrencia a buscar no se sustituye nada y devuelve el mismo rexto.
/**
* Class HelperString
*/
abstract class HelperString
{
/**
* Reemplaza sólo la primera ocurrencia de un texto por otro.
* Es insensible a mayúsculas y minúsculas pero no a los acentos.
* Si no existe la ocurrencia, devuelve el mismo string
*
* @param string $txt
* @param string $origen
* @param string $destino
*
* @return string
*/
public static function replaceFirst( $txt, $origen, $destino )
{
$origen = '/'.preg_quote( ''.$origen, '/' ).'/i';
return ''.preg_replace( $origen, ''.$destino, ''.$txt, 1 );
}
}
Ejemplos
$str = "123_123_123"; $ret = HelperString::replaceFirst($str, '1', "X"); echo $ret; // X23_123_123 $str = "abc defgh, abc defgh"; $ret = HelperString::replaceFirst($str, 'efg', "_"); echo $ret; // abc d_h, abc defgh $str = "abc defgh abc defgHI"; $ret = HelperString::replaceFirst($str, 'eFg', "__X__"); echo $ret; // abc d__X__h abc defgHI $str = "Función generación"; $ret = HelperString::replaceFirst($str, 'CIóN', "y"); echo $ret; // Funy generación $str = "Función generación"; $ret = HelperString::replaceFirst($str, 'CIÓN', "y"); echo $ret; // Función generación
