Ir para conteúdo
Fórum Script Brasil
  • 0

Selecionar Tudo Exceto O Valor Do Meio


RodrigoGomes

Pergunta

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

  • 0

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..

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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);
}

Link para o comentário
Compartilhar em outros sites

  • 0

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:

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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:

Link para o comentário
Compartilhar em outros sites

  • 0

ahá.. :lol:

consegui...

vlw brothers, rss pra alguém com 16 anos to até indo bem.. B)

coloquei assim

foreach (glob("&*;") as $evnick) {

$evnick = str_replace("#","",$evnick);

}

e tirei a parte do else pra baixo e funciono..rss

aff, por um instante achei que tinha dado certo.. :unsure:

não consegui.. ainda presiso de ajuda.. :o

Link para o comentário
Compartilhar em outros sites

  • 0

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 *.*

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...