Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nícolas

ER - To Algumas

Recommended Posts

Ai to lendo um tutorial de ER aqui do iMasters, e to com uma dúvida que é simples.

 

neste código

PHP

[*]<?

[*]$test = "asp";

[*]echo preg_match(sql_regcase("#(PHP|ASP)#"), $test);

[*]?>

 

o Fabyo falou assim:

 

e sobre ("#(PHP|ASP)#") é só pra escapar a ER no preg_match pode ser usado qualquer caracter de escape

mas tome cuidado para não usar um muito diferente ou que pode ser usado na ER

 

posso escapar assim: ("/(PHP|ASP)/") ou ("~(PHP|ASP)~") , bom pelo menos agora você vai olhar pra ER e não vai ficar tão confuso querendo descobrir pra que serve a /, # ou ~

 

Mas afinal para que server este escapar???

 

Pois eu testei esta mesmo expressão sem o escape e deu no mesmo!!! :blink:

 

 

--------------------------------------------------

 

PHP

[*]$mensagem = preg_replace("/\[b\](.*?)\[\/b\]/si""<b>\\1</b>", $mensagem); 

 

Aqui por exemplo, é o esquema das tags do Invision

 

eu entendi quase tudo aqui.

 

/\[b\]

[*] / server para escape (que não sei ainda oque é)

 

[*] \[ é para abrir o colchete

 

[*]b - para deixar em negrito

 

[*]\] - para fechar o colchete

(.*?)

[*] () limita o conteudo de dentro deles, para não se misturar com o de fora

 

[*] .*? Não sei o porque do ponto, e pelo oque ta aqui o * é quantificador, 0 ou mais. e o ? Um caractere opcional. Pode ser interpretado como um quantificador, 0 ou 1.

Eu sei que aqui ele estaria dando como a entrada dos dados dentro das tags do invision, mas não entendi bem este qualificador.

\[\/b\]/si

[*] \[ é para abrir o colchete

 

[*]\/b - para fechar a tag negrito

 

[*]\] - para fechar o colchete

 

[*]/si - combina com caractere em branco (Não entendi bem isso e nem porque ta o i depois dele, pois aqui não flw nada sobre ele)

<b>\\1</b>

[*] <b></b> - Deixa em negrito

 

[*] \\1 - Só sei que tem haver com o qualificado que foi citado acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo cara, eu nao manjo muito de er nao... mais acho que é o seguinte:

 

tem caracteries que para programacao tem mais de um sentido, por exemplo "'", isso daria um erro, porque voce nao fechou o ' , entao para imprimir isso voce usa o escape por exemplo \' para a linguagem entender que isso nao faz parte da linha de comando.. entendeu ? acho que serve apenas para isso..

 

ah sim o /si é um modificador, tem um padrao para isso, voce pode ver mais sobre isso aqui: http://br.php.net/manual/pt_BR/reference.p...n.modifiers.php

 

bom acho que respondi suas duvidas... qualquer coisa posta ai... ah sim, se eu falei besteira alguem me corrija por favor

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo

 

Ai baio, eu coloquei assim.

PHP

[*]<?

[*]$test = "asp";

[*]echo preg_match(sql_regcase("(PHP|ASP)"), $test);

[*]?>

 

Sem o sustenido, e deu no mesmo cara.

 

Queria saber direito o porque você escapa isso.

 

E sobre o link, eu tneho o Manual do php aqui, mas não sei ler muito bem inglês, pois esta parte ta em inglês no manual tb.

 

-------------------------------------------------------------------------------

red neck *

 

Vlw ai a intenção, mas sobre estes escapes de \(barra invertida) para escapar caracteres eu sei cara, eu queria saber porque ele escapa a expressão com #(sustenidos), / (Barra) e o ~(Tio) se mesmo sem o escape deu o mesmo resultado

 

 

-------------------------------------------------------------------------------

Cerrido

 

Vlw ai pelo link, mas o fogo é que esse manual é dividido em varias paginas, não por ancores (Estilo FAQ), pois desse jeito só da para ler na net, e não da para salvar no pc tudo.

 

É que eu utilizo discada, então não dá para ficar lendo manuais assim numa boa, só nos fins de semana.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.