Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/08/2011, 08:50
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Expresion regular

Todo lo que dicen los compañeros es cierto, así debe quedar:

Código PHP:
Ver original
  1. <?php
  2. $mensaje = 'Hola [link]www.enlace.com[/link] chau [link]www.google.com[/link] bye';
  3. $encontrado = preg_match_all('@\[link\](.*?)\[/link\]@i', $mensaje, $resultados, PREG_SET_ORDER);
  4.  
  5. if (($encontrado)) {
  6.     foreach ($resultados as $res) {
  7.         echo $res[1] . '<br />';
  8.     }
  9. }
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
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP