RodrigoGomes Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 olá amigos isso é meio dificio de explicar, rss..eu um script que seleciona-se tudo que comesa-se com "\" e termina-se com "/" por que o valor do meio pode ser vários, ex:\680/\037/\064/etc...então em um texto que tivesse:olá amigos \973/ como vocês estão? \419/Dai na hora de filtrar os espaços e os \ / ele faria assim:$texto = str_replace(" ","_",($_POST['texto']));if ("\*/" == "$texto"){} else {$texto = str_replace("\\","",$texto);$texto = str_replace("/","",$texto);}Só que não funciono rss.. se alguém puder me ajudar.. :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Qual o problema? Acabei de testar e está ok... está trocando espaços em branco por _ e apagando os \ /, caso você queira converter _ em espaços em branco basta trocar a ordem dos fatores no primeiro str_replace. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 eu criei este script no tapa não imaginei que estivese funcionando.. hehehe, ok vo ver.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Só uma consideração, não use if/else... faça ele percorrer toda a string a ser verificada... mesmo porque \*/ não é eficiente. Para você usar o * como caractere coringa terá que usar foreach e glob. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 exatamente esta parte que não funciono, ele não ignoro aqueles que tinham um valor no meio, eu queria que ele ignora-se esses valores que começase com \ e termina-se com /eu queria que ele tira-se aqueles que tem \ e não tem a parte final mas ele esta tirando tudo.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Favor re-escrever as suas frases, porque eu não entendi muito bem... mas pelo que eu entendiVocê não quer que ele remova \ / quando existir algum valor dentro? É isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 não, vamos supor\6841/ ele não iria remover porque começa com \ e termina com /agora aqueles que comesase com \ e não tivesse o / ele removeria e a mesma coisa para o que tivesse / e não o começo (\) tmb removeria.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Então você pode usar a eregi para procurar se existe ou não os caracteres... se não existir ambos os caracteres você não faz nada caso contrário você faz... tem até um exemplo pronto no manual... no caso como você terá que fazer 2 testes (se existe \ e se existe /) você terá que usar o AND para testar se eles existem ao mesmo tempo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 eu tentei usar:$texto = str_replace(" ","_",$texto);if (eregi("\ and /", $texto)) {} else {$texto = str_replace("\\","",$texto);$texto = str_replace("/","",$texto);}porem continua removendo tudo que tem \ e / eu queria que remove-se só quando não tivesse o começo "\" ou quando não tivesse o fim "/".O script deveria ignorar aqueles que tem \xxx/ e apagar aqueles que tivesse \xxx ficaria xxx ou xxx/ ficaria xxx Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Claro... o que você fez:if (eregi("\ and /", $texto)) {Não existe...Tem que ser feito assim: if (eregi("[\]", $texto) AND eregi("/", $texto)) { //Aqui ele vai retornar se for encontrado / e \ $texto = substr("$texto", 1); }else{ //Aqui coloca a parte que remove... $texto = str_replace("\\","",$texto); $texto = str_replace("/","",$texto); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 Pra ser mais especifico isso era pra separar os caracteres epeciais que começam com & e terminam com ;O filtro de texto era pra remover todos "#" mas ele remove do caracteres também ai o nick com caracteres fica apenas números, dai eu tava tentando fazer um script que quando vice que alguma parte do nick comecando com & e terminando com ; ele não iria apagar os #, caso contrario ele iria sim remover os #, abaixo o exemplo:$evnick = str_replace(" ","_",($_POST['nick'])); $evnick = str_replace(" ","_",$evnick); $evnick = str_replace("!","",$evnick); $evnick = str_replace("|","",$evnick); $evnick = str_replace("\"","",$evnick); $evnick = str_replace("\\","",$evnick); $evnick = str_replace("/","",$evnick); $evnick = str_replace("'","",$evnick); $evnick = str_replace("@","",$evnick); $evnick = str_replace("<","",$evnick); $evnick = str_replace(">","",$evnick); $evnick = str_replace(",","",$evnick); $evnick = str_replace(".","",$evnick); $evnick = str_replace("%","",$evnick); if (eregi("[&]",$evnick) AND eregi(";",$evnick)) { } else { $evnick = str_replace("&","",$evnick); $evnick = str_replace(";","",$evnick); $evnick = str_replace("#","",$evnick); }mas ele agora não esta apagando nada com # :unsure: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Peraí... ai é outra estória... você tem posições definidas, você quer que o primeiro seja & e que o último seja ; então ANTES de usar eregi, vai ter que descobrir se essa condição está sendo contemplada, no caso, você tem que usar strpos para descobrir em que posição da string se encontra o caractere, será fácil para descobrir o primeiro caso, pois se ele for o primeiro o valor retornado será 0, agora, o último caso você terá que primeiro contar quantos caracteres tem a string e ai comparar o número achado com a posição referente ao ; se forem iguais é sinal que o ; é o último caractere. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 ah tá =|eu não sou um proficial no php mais dou meus pulos.. rsse como faço isso? =o Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 beleza, eu entendi, mas agora meu problema é outro...$evnick = str_replace(" ","_",($_POST['nick'])); $evnick = str_replace(" ","_",$evnick); $evnick = str_replace("!","",$evnick); $evnick = str_replace("|","",$evnick); $evnick = str_replace("\"","",$evnick); $evnick = str_replace("\\","",$evnick); $evnick = str_replace("/","",$evnick); $evnick = str_replace("'","",$evnick); $evnick = str_replace("@","",$evnick); $evnick = str_replace("<","",$evnick); $evnick = str_replace(">","",$evnick); $evnick = str_replace(",","",$evnick); $evnick = str_replace(".","",$evnick); $evnick = str_replace("%","",$evnick); foreach (glob("&*;") as $evnick) { } else { $evnick = str_replace("#","",$evnick); }Neste exemplo concerteza o else não funciona no foreach então como resolvo isso? :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 ahá.. :lol: consegui...vlw brothers, rss pra alguém com 16 anos to até indo bem.. B)coloquei assimforeach (glob("&*;") as $evnick) {$evnick = str_replace("#","",$evnick);}e tirei a parte do else pra baixo e funciono..rssaff, por um instante achei que tinha dado certo.. :unsure: não consegui.. ainda presiso de ajuda.. :o Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 26, 2007 Denunciar Share Postado Janeiro 26, 2007 Por que você não faz como eu falei? A sua idéia de utilizar o * para dizer pro PHP que é tudo que está no meio não vai funcionar nesse caso por 1 motivo, essa idéia só funciona quando o comando é enviado para o servidor executar, ou seja, o PHP diz pro software do servidor, por exemplo, apaga o arquivo *.* Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Janeiro 26, 2007 Autor Denunciar Share Postado Janeiro 26, 2007 então não tem jeito.. :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RodrigoGomes
olá amigos isso é meio dificio de explicar, rss..
eu um script que seleciona-se tudo que comesa-se com "\" e termina-se com "/" por que o valor do meio pode ser vários, ex:
\680/
\037/
\064/
etc...
então em um texto que tivesse:
olá amigos \973/ como vocês estão? \419/
Dai na hora de filtrar os espaços e os \ / ele faria assim:
$texto = str_replace(" ","_",($_POST['texto']));
if ("\*/" == "$texto"){
} else {
$texto = str_replace("\\","",$texto);
$texto = str_replace("/","",$texto);
}
Só que não funciono rss.. se alguém puder me ajudar.. :)
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.