Función que permite extraer una determinada parte de cadena en PHP
Quiero compartir con ustedes una función extremadamente útil, la cual permite obtener una determinada parte de un string.
Función:
function obtString ($TheStr, $sLeft, $sRight, $Sensitive=false){
$TheStrMin = $Sensitive ? $TheStr : strtolower ($TheStr);
$pleft = strpos ($TheStrMin, $sLeft, 0);
if ($pleft!==false){
$pright=strpos ($TheStrMin, $sRight, $pleft + strlen ($sLeft));
if ($pright!==false){
$Encontrado = (substr ($TheStr, $pleft + strlen ($sLeft), ($pright - ($pleft + strlen ($sLeft)))));
$Resto = substr ($TheStr, 0,$pleft).substr ($TheStr, ($pright+strlen ($sRight)));
return array ($Encontrado,$Resto);
}
}
return ´´;
}
¿Como utilizarla?:
Supongamos que queremos extraer del texto lo que esté dentro de las palabras [texto] y [/texto].
Para realizar su llamada se debe hacer de la siguiente manera:
$texto = ´Esto es una prueba de [texto]Texto para quitar[/texto]. Una función útil y eficaz.´;
$arr = obtString ($texto,¨[texto]¨,¨[/texto]¨);
if ($arr!=´´){
echo ´<b>Texto encontrado:</b> ´.$arr[0].´<br><b>Texto Restante:</b> ´.$arr[1].´<br>´;
}
Además la función permite recibir otro parámetro mas ¨case sensitive¨, el cual se puede escribir en valor boleano (true or false), (1 or 0);
$texto = ´Esto es una [teXTo]prueba[/TEXTO] de [texto]Texto para quitar[/texto]. Una función útil y eficaz.´;
$arr = obtString ($texto,¨[texto]¨,¨[/texto]¨,true);
En este caso encontrará exactamente lo que este dentro de esas palabras. Puede verse como saltea la palabra ¨prueba¨.
Por default se encuentra en false ese parámetro. Con solo quitar el valor
true, observarán como extrae la palabra ¨prueba¨.
Espero que les sea de gran utilidad.
Saludos.