
Todo lo que dicen los compañeros es cierto, así debe quedar:
Código PHP:
Ver original<?php
$mensaje = 'Hola [link]www.enlace.com[/link] chau [link]www.google.com[/link] bye';
$encontrado = preg_match_all('@\[link\](.*?)\[/link\]@i', $mensaje, $resultados, PREG_SET_ORDER
);
if (($encontrado)) {
foreach ($resultados as $res) {
echo $res[1] . '<br />';
}
}
Debes colocar
.*? porque necesitas que coja desde la primera etiqueta [link] hasta la primera etiqueta [/link], de otro modo se iría desde la primera hasta el final de todo. Además debes escapar todos los metacaracteres
^ $ ( ) < > [ ] { \ | . * + ? entre otros y si usas como separadores el
/ lo debes escapar. Saludos