Johan de Bruin

Programación en php, tutorial de api wordpress y posicionamiento en buscadores seo.

Funcion extraer subcadena php

Esta función de PHP la cree hace tiempo, su finalidad es la de extraer una subcadena de una cadena o string en PHP. Además, puedes indicar la itineración para que no extraiga la primera subcadena que encuentre. Es extremadamente útil a la hora de manejar strings en HTML. Los parámetros son los siguientes:

  • $cadena: la cadena que se va a evaluar
  • $antes: lo que aparece antes de la subcadena que se quiere extraer
  • $despues: lo que aparece después de la subcadena que se quiere extraer
  • $cuenta: el número de veces que se tiene que repetir la coincidencia hasta devolver la subcadena

Ejemplo:

$cadena = "Esto es una lista..<ul><li>Hola mundo</li> <li>Hola mundo2</li></ul>";
echo "Primera subcadena: " .extraer($cadena,"<li>","</li>",1). "<br />";
echo "Segunda subcadena: " .extraer($cadena,"<li>","</li>",2);


Y aquí esta la función deseada:

function extraer($cadena,$antes,$despues,$cuenta)
{
	/*Función para obtener extraer una subcadena
	Creado por johandebruin.com el 29-12-2009*/
	if(!$cuenta)
		return false;
	//Ponemos en minuscula todo para optimizar el algoritmo;
	$cadena = strtolower($cadena);
	$antes = strtolower($antes);
	$despues = strtolower($despues);
 
	$localizacion1 = $localizacion2 = 0;
	do
	{
		$localizacion1 = strpos($cadena,$antes,$localizacion1 + 1);
		if($localizacion1 == false)
			return false;
		$cuenta--;
	} while ($cuenta > 0);
	$localizacion2 = strpos($cadena, $despues, $localizacion1 + 1);
	if ($localizacion2 == false)
		return false;
	$localizacion1 += strlen($antes);
	return substr($cadena,$localizacion1,$localizacion2 - $localizacion1);
}

Leave a Response