• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xploit

Expressões regulares

8 mensagens neste tópico

Viva, estou a tentar obter o código contido entre duas tags:

php

preg_match_all('<!--beginMenu-->(.*?)<!--endMenu-->',$HTML,$output);

html

<!--beginMenu-->
Olá eu sou o código que devia aparecer no $output.
<!--endMenu-->

O que está mal no preg match? tks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Penso que tenha a ver com a mudança de linhas, esperimenta isto:

<!--beginMenu-->\n*?(.*?)\n*?<!--endMenu-->

Cumprimentos,

mesquitan

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não funcionou  :(.. não consigo perceber o que está errado aparece o array do preg match em branco.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta por o ? depois dos (), assim:

<!--beginMenu-->(.*)?<!--endMenu-->

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

preg_match_all("<!--beginMenu-->(.*)?<!--endMenu-->",$this->HTML,$output);	  
print_r($output);

aparece em branco..  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

preg_match_all('#<!--beginMenu-->(.*)<!--endMenu-->#s', $HTML, $output);

Se a ideia for apanhar conteúdo entre múltiplas tags, isto não funciona. Se for só uma, já funciona.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para além de não colocares nenhum delimiter na tua expressão, esqueceste-te do s depois do closing delimiter para indicar o "suporte" a newlines. :(

EDIT: Como o Nazgulled mostrou. ^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora