Deberias incluir en el texto algun diferenciador, para poder dividir en partes el texto, por ejemplo:
texto texto texto texto texto texto texto [imagen] texto texto texto texto ... etc...
De esta manera se podria usar algo parecido a esto:
Código:
<?
/**
Esta funcion devuelve un array
*/
function getImagenes($cadena)
{
$posicion1 = 0;
$posicion2 = 1;
$partes[] = array();
while (strpos($cadena,"[",$posicion1)==true)
{
$posicion2 = strpos($cadena,"[",$posicion1);
if ($posicion2<strlen($cadena))
{
$partes[] .= substr($cadena,$posicion2+1,(strpos($cadena,"]",$posicion2) - $posicion2 - 1));
$posicion1 = $posicion2+1;
}
}
return $partes;
}
$imagenes = getImagenes("Tengo una cadena de texto con una [imagen]/id=1 y otra [imagen]/id=2");
var_dump($imagenes);
?>
De manera que el resultado que devolveria seria:
array(3) { [0]=> array(0) { } [1]=> string(6) "imagen" [2]=> string(6) "imagen" }
El array con indice cero no lo contemples, solo desde el 1 en adelante.