Solucionado chicos!! voy a poner el código por si le viene bien a alguien, y por si veis que le falta algún fleco o algo que podría mejorar.
Código PHP:
$regex = '/\[(\w+)\]([^[\]]+?)\[\/\\1\]/s';
function procesar_tags($matches) {
list(, $tagName, $tagValue) = $matches;
if($tagName == "imagen"){
$argumentos = explode(",", $tagValue);
$id = $argumentos[0];
$dimensiones = $argumentos[1];
$alineado = $argumentos[2];
$ampliacion = $argumentos[3];
global $conexion;
$resultado = mysqli_query($conexion, "select * from imagenes where id=$id") or die(mysqli_error());
$contenido = mysqli_fetch_array($resultado);
$urlimagen = $contenido['url'];
$coincidencias=mysqli_num_rows($resultado);
if($coincidencias!=0){
if($alineado == "centro") {
$estilo = "display:block; margin:auto;";
} elseif($alineado == "derecha") {
$estilo = "float:right;";
} else {
$estilo = "float:left;";
}
if ($dimensiones == "reducido") {
$ruta = "./imagenes/mini/mini-";
} else {
$ruta = "./imagenes/";
}
if($ampliacion == "ampliar"){
$resultado = "<a href='./imagenes/$urlimagen' rel='lightbox'><img class='imagenes' style='$estilo' src='$ruta$urlimagen'></a>";
} else {
$resultado = "<img class='imagenes' style='$estilo' src='$ruta$urlimagen'>";
}
$salida=$resultado;
} else { $salida="La imagen especificada no se existe, por favor, corrige el error"; }
} else {
$salida = "<strong>Comando desconocido</strong>";
}
return $salida;
}
$entrada = '[imagen]80,reducido,centro,aumentar[/imagen] texto seguido de otro comando, pero esta vez dira que es desconocido
porque de momento la funcion procesar_tags() solo admite imagenes [x]tag que va a dar error[/x]';
$salida = preg_replace_callback($regex, 'procesar_tags', $entrada);
echo $salida;
He hecho todo el proceso en la misma función, lo que me ahorra muchas líneas de código, muchísimas gracias pateketrueke.
Con ésto, al comprimir tanto el código, cuando corto el texto, corto prácticamente lo que realmente es texto, y toda la etiqueta de las imágenes no ocupa lugar, luego desde php leo el contenido del texto recortado y lo adapto al html.
De momento solo he hecho que funcione con imagenes, pero más adelante pondré etiquetas de enlaces y demás. ¿Habrá algún problema si una etiqueta contiene a otra? bueno, ya veré ésto más adelante.
Un saludo y muchas gracias ;)