Jump to content


Photo

Pesquisar Múltiplos Itens Numa String


  • Faça o login para participar
1 reply to this topic

#1 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 22/01/2011, 16:06

Reparem no script abaixo:
$titulo = "[Dúvida] Download do jogo Splinter Cell"; //Determina a variável $titulo

$prefixo = '[Dúvida]';

$pesquisar = preg_match($prefixo,$titulo,$juntos, PREG_OFFSET_CAPTURE); //Verifica se $prefixo existe em $titulo
if ($pesquisar > 0){ //Se o prefixo existir
$prefixo_colorido = "<font color='red'>".$prefixo."</font>"; //Determina a variável $prefixo_colorido
echo substr_replace($titulo , $prefixo_colorido , 0,strlen($prefixo)); //Substitui $prefixo se presente no $titulo por $prefixo_colorido
}

Está quase do jeito que eu queria, o que eu quero mesmo é poder pesquisar múltiplos $prefixos na variável $titulo, para poder fazer uma espécie de banco de dados nos arrays como por exemplo:
$prefixo = '[Dúvida],[Tutorial],[Resolvida]';

Ou talvez quem sabe:
$prefixo = array(
'[Dúvida]',
'[Tutorial]',
'[Resolvida]',
);

Não importa a maneira eu apenas quero poder pesquisar mais de um $prefixo na string $titulo.

Bom então é isso, aguardo uma resposta.

Abraços,
bigCheat.

#2 bigcheat

bigcheat

    Turista

  • Usuários
  • 38 posts
  • Sexo:Masculino
  • Localidade:Fortaleza-CE

Posted 24/01/2011, 23:30

Reparem no script abaixo:

$titulo = "[Dúvida] Download do jogo Splinter Cell"; //Determina a variável $titulo

$prefixo = '[Dúvida]';

$pesquisar = preg_match($prefixo,$titulo,$juntos, PREG_OFFSET_CAPTURE); //Verifica se $prefixo existe em $titulo
if ($pesquisar > 0){ //Se o prefixo existir
$prefixo_colorido = "<font color='red'>".$prefixo."</font>"; //Determina a variável $prefixo_colorido
echo substr_replace($titulo , $prefixo_colorido , 0,strlen($prefixo)); //Substitui $prefixo se presente no $titulo por $prefixo_colorido
}

Está quase do jeito que eu queria, o que eu quero mesmo é poder pesquisar múltiplos $prefixos na variável $titulo, para poder fazer uma espécie de banco de dados nos arrays como por exemplo:
$prefixo = '[Dúvida],[Tutorial],[Resolvida]';

Ou talvez quem sabe:
$prefixo = array(
'[Dúvida]',
'[Tutorial]',
'[Resolvida]',
);

Não importa a maneira eu apenas quero poder pesquisar mais de um $prefixo na string $titulo.

Bom então é isso, aguardo uma resposta.

Abraços,
bigCheat.


Bom depois de muita pesquisa e após ter passado em alguns outros foruns, fiz diversas modificações está dando tudo certo do jeito como eu precisava, veja como está o código:
<?php

//Colorir prefixo nos tópicos (SMF)
$titulo = "[Tutorial] Download do Game Splinter Cell"; //Determina a variável $titulo

$prefixo = array(
'[Dúvida]',
'[Tutorial]',
'[Vídeo-Aula]',
);

$cor = array(
'red',
'blue',
'purple',
);


for($i = 0; $i < count($prefixo);$i++){
$resultado = strstr($titulo , $prefixo[$i]);

if ($resultado == $titulo){

$n_prefixo = $i;

}

}

$pesquisar = preg_match($prefixo[$n_prefixo],$titulo,$juntos, PREG_OFFSET_CAPTURE); //Verifica se $prefixo existe em $titulo
if ($pesquisar > 0){ //Se o prefixo existir
$prefixo_colorido = "<font color='".$cor[$n_prefixo]."'>".$prefixo[$n_prefixo]."</font>"; //Determina a variável $prefixo_colorido
echo str_replace($prefixo , $prefixo_colorido, $titulo); //Substitui $prefixo se presente no $titulo por $prefixo_colorido
}

?>

Agora gostaria de que ele substituísse os itens de forma diferente, por exemplo eu estou mandando ele fazer isso nos prefixos que forem do índice de valor igual a $n_prefixo que é igual a $i que é igual ao prefixo que ele encontrou na string $titulo:
$prefixo_colorido = "<font color='".$cor[$n_prefixo]."'>".$prefixo[$n_prefixo]."</font>";

Agora gostaria que ele procurasse a quantidade que os $prefixos existem e os colorisse de forma diferente. Por
exemplo vamos supor que ele encontrou os prefixos [Dúvida], [Tutorial] e [Vídeo-Aula] na string $titulo que tem cores(cores determinadas em $cor) diferentes então gostaria que ele colorisse os indíces da seguinte forma:

$prefixo[1] com sua $cor[1]
$prefixo[2] com sua $cor[2]


Múltiplamente entende? Tem alguma forma de fazer isso assim?

Espero que tenham me entendido.

Abraços.

Edição feita por: bigcheat, 24/01/2011, 23:32.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq