Nícolas 4 Denunciar post Postado Junho 20, 2005 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
Fabyo 66 Denunciar post Postado Junho 20, 2005 Entao nao entendi sua duvida sobre você falou que usou sem escapar e nao deu erro, mas posta ai como você fez e leia sobre: http://br.php.net/preg_replace Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Junho 20, 2005 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
Cerrito 0 Denunciar post Postado Junho 20, 2005 Um ótimo material sobre ER... colocado sobre o próprio autor do livro... http://guia-er.sourceforge.net/guia-er.html com certeza ajuda e muito... Marcio Compartilhar este post Link para o post Compartilhar em outros sites
Nícolas 4 Denunciar post Postado Junho 21, 2005 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