ticarp 0 Denunciar post Postado Outubro 15, 2005 Fala galera... a muito venho tentando identificar as newlines \n via ER... e ñ consigo...por exemplo...eu precisava excluir de meu texto todos os paragrafos vazios...sendo e texto tem essa configuração:<p>sdasdasdasda</p><p>asdadaasdsadasd</p><p></p><p></p><p>sadadasdasdadasdadadas</p>perceba q sempre existe uma newline entre a tag de abertura e a fechamento do paragrafo...resolvi esse problema usando a seguinte ER:$p_vazios = "|<p>[ ,]*</p>|";isso mesmo... eu tenho q dar um ENTER no meio da ER pra simular a newline... tentei de todas as formas alguma maneira de usar \n na minha ER mas ñ consegui...É possível isso??e se eu quiser substituir todas as \n por algum texto?eu tenho primeiro q passar a nl2br e depois substituir as <br />??resumindo...como escrevo uma ER q substitua \n por alguma coisa??Abração, Tiago. Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 15, 2005 consegui!!!! :D $p_vazios = "|<p>[ \r\n]*</p>|";agora a dúvida.... pra q serve o \r?? e quais outros usos dele??eu me baseei num exemplo no php.net pra usa-lo! Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Pontes 0 Denunciar post Postado Outubro 16, 2005 O \r é interpretado pelo php como retorno de carro, ou seja, ele retorna a execução para o inicio da proxima linha. Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 16, 2005 hummmm... então no caso eu poderia usar só o retorno de carro? \r... ao invés de \r\n?confesso q continuo sem entender direito!!! Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 16, 2005 agora estou meio confuso... O \r é interpretado pelo php como retorno de carro, ou seja, ele retorna a execução para o inicio da proxima linha.ñ é o \n q retorna a execução para o inicio da proxima linha???voltando ao meu exemplo:<p>sdasdasdasda</p><p>asdadaasdsadasd</p><p></p><p></p><p>sadadasdasdadasdadadas</p>ñ expressão regular usei \n e ñ funcionou... usei \r e ñ funcionou... agora quando usei \r\n funcionou...gostaria de saber oq exatamente cada um deles faz.. e oq representam quando usados em sequencia...abração, Tiago. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 16, 2005 Sistemas baseados no Unix utilizam \n como final de linha, sistemas baseados no Windows usam \r\n e sistemas baseados no Macintosh usam \r. você pode fazer assim e passar tudo para \n: $code = preg_replace("#(\r\n|\r)#", "\n", $code); Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 16, 2005 Hum!! Entendi Fabyo! Muito bom saber disso... só uma questão final... Se utilizarmos \r\n... estaremos "sendo entendidos" em qualquer sistema (Unix, Windows, Macintosh)? Ou o Unix só reconhece final de linha com \n e o mac só com \r? Ah... esse final de linha necessariamente implica no ponteiro ser movido pro inicio da proxima linha né?? Abração, Tiago. Ps.: Esse negócio de expressões regulares vicia!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 16, 2005 Se utilizarmos \r\n... estaremos "sendo entendidos" em qualquer sistema (Unix, Windows, Macintosh)? nao o \r\n é só o windows que entende e como falei acima, por isso depende do sistema que você ta fazendo como por exemplo gravar em um txt se nao usar o pulo de linha certo dependendo do editor de texto que você usar para abrir o txt podera aparecer caracteres estranhos Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 16, 2005 Saquei saquei!!!no caso... essa minha ER:$p_vazios = "|<p>[ \r\n]*</p>|";só sera identificada caso o usuario esteja navegando numa plataforma windows, certo?caso ele esteja num browser num Mac os paragrafos em branco ñ serão excluidos...vou testar algo assim pra vê se continua funcionando no windows...$p_vazios = "|<p>( |\r\n|\r|\n)*</p>|";será?!?!vamos ver! :D Tiago. Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 16, 2005 Opa Fabyo!!!Olha só!!!$p_vazios = "#(<p>)(\r\n|\r|\n| )*(</p>)#";consegui assim!!!!é +- como aquela q você postou... oq quer q ele ache: \r\n | \n | \r é tranformado em nada ""...tá funcionando aqui!!!só uma ultima dúvida... o sistema q você fala... windows, unix, mac... é o da máquina do usuario?? ou tem algo haver com o host?Tiago. Compartilhar este post Link para o post Compartilhar em outros sites
red neck * 0 Denunciar post Postado Outubro 16, 2005 @ticarp, tem haver com o hostvoce pode usar o modificador s tambem, ele funfapor ex: <?$str='<p>sdasdasdasda</p><p>asdadaasdsadasd</p><p></p><p></p><p>sadadasdasdadasdadadas</p>';preg_match_all("#<p>(.*?)<\/p>#s",$str,$matches);print_r($matches);?>valeu[]'s Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 17, 2005 fala red_neck...eu ja tinha lido sobre o modificador s...só que no php.net diz: If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines.eu pensei q ele ñ funcionaria já q eu quero eliminar apenas os paragrafos vazios... e pelo oq eu havia entendido ele casa todos os caracteres incluindo as newlines....Agora sobre a questão do host... agora me embananei um pouco...ja que o sistema que o Fabyo se referia diz respeito ao host... minha ER usando apenas \n deveria funcionar já q meu host é Linux..e funcionou apenas com \r\n q é o utilizado em sistemas baseados em Windows... :blink: :blink: :blink: E agora José?? :( Tiago. Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Outubro 17, 2005 Experimente utilizar \s ao invés de usar \r\n ou \n. Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 17, 2005 cara, ñ funcionou com esse \s ñ... pelo mneos no meu servidor...assim... a minha pergunta é a seguinte... posso ficar tranquilo já está funcionando com \r\n, independente da plataforma q o usuario esteja irá funcionar perfeitamente... é isso? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 17, 2005 sim se funciona assim o que importa é rodar no seu servidor e nao no cliente Compartilhar este post Link para o post Compartilhar em outros sites
ticarp 0 Denunciar post Postado Outubro 17, 2005 ufaaaaaaaaaaa!!!!! :D meus problemas se acabariummmm!!!!no meus host (linux) ta funcionando com \r\n :blink: mas pelo menos funciona!!!!!! :D :Dvaleu galera!!!!! Compartilhar este post Link para o post Compartilhar em outros sites