KUROL3 3 Denunciar post Postado Janeiro 18, 2009 Gostari de saber se existe alguma função que seja possível identificar uma palavra em maiusculo e troca-la por negrito. Marco Compartilhar este post Link para o post Compartilhar em outros sites
OoDragooNoO 0 Denunciar post Postado Janeiro 19, 2009 nao entendi o que tu quer, mas em todo caso... se tu quiser uma funçao para converter qualquer coisa para maiusculas, utilize a funçao "strtoupper()" echo "minha string com todas letras maiusculas : ". strtoupper($minha_string); se tu quiser verificar se determinada string eh maiuscula, utilize a funçao "ctype_upper()" if(ctype_upper($minha_string)) { echo "minha string contem todos caracteres maiusculos"; } sobre substituir as palavras em maisculo para palavras em negrito, tu teria que fazer um laço e procurar por todas palavras em maiusculo, para depois substituir elas para maiusculas em negrito passe um exemplo de string que tu possui para que possamos verificar exatamente o que tu tem e como te ajudar com isso, pois de nada adianta eu postar um codigo extenso aqui e nao te servir http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif referencia das funçoes: strtoupper : http://br.php.net/manual/pt_BR/function.strtoupper.php ctype_upper : http://br.php.net/manual/pt_BR/function.ctype-upper.php flw xD/ Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 19, 2009 Bom vamos lá.. //entrada $minha_string = "Nussa estamos testando se esta tudo OK, vamos ver o que VIRA esse código"; //saida $minha_string = "Nussa estamos testando se esta tudo OK, vamos ver o que VIRA esse código"; eu acho que um laço ira carregar muito o server dependendo do tamanho. poderiamos pensar em usar algo str_replace(); Marco Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 19, 2009 Para fazer o negrito você vai precisar de CSS, ou HTML... precisaria quebrar a string pelo menos ao encontrar a palavra em maiúsculo.. para substituir o VIRA por algo como <span style="font-weight:bold">VIRA</span> ou <b>VIRA</b> ou ainda <strong>VIRA</strong>... Talvez com Javascript seja mais simples... e já que se trata de apresentação visual... Compartilhar este post Link para o post Compartilhar em outros sites
Tash 5 Denunciar post Postado Janeiro 19, 2009 Dá pra exibir, somente exibir, palavras em maiúsculas apenas com CSS também, usando a propriedade text-transform com valor uppercase http://www.w3schools.com/Css/pr_text_text-transform.asp Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Janeiro 19, 2009 Gostari de saber se existe alguma função que seja possível identificar uma palavra em maiusculo e troca-la por negrito. Marco acredito que não se tenha nenhuma função para o seu problema, mas você mesmo poderia criar, tem de ver se é viável primeiro pois teria que quebrar cada palavra em seu texto como uma string e então comparar com a versão em caixa alta desta palavra, se for igual você coloca em negrito. // quebrar o texto $TextoQuebrado= explode(" ", $Texto); // percorrer a array For ($i=0;$i<count($TextoQuebrado);$i++) { // comparar if(strcmp($TextoQuebrado, strtoupper($TextoQuebrado)) == 0) { // colocar a string em negrito } } //Juntar novamente o texto $TextoComNegrito = implode(" ", $TextoQuebrado); Corrija se houver algo errado, mas é uma idéia, tenta usar um cache caso for criar. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 19, 2009 Por isso amo Expressões Regulares: $str = "BerAldO"; $str = preg_replace("/([A-Z])/", "<strong>$1</strong>", $str); echo $str; Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Janeiro 19, 2009 Por isso amo Expressões Regulares: $str = "BerAldO"; $str = preg_replace("/([A-Z])/", "<strong>$1</strong>", $str); echo $str; Acho que é a melhor solução, só tem de adaptar para que a expressão reconheça a palavra inteira como maiúscula. Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 20, 2009 Perfeito Beraldo...... como adaptar essa expressão para reconhecer palavras não letras? Tipo assim ESSA é boa EM, rsrs! Tipo => não entra assim=> não entra ESSA => entra é = não entra boa => não entra EM, => não entra (não sei como se comporta quanto a virgula rsrs! => não entra Abraço e valew pela ajuda... Marco Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 20, 2009 use str_replace ou str_ireplace ERs não servem para casar palavras (a não ser que se use gambiarra) Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 21, 2009 use str_replace ou str_ireplace ERs não servem para casar palavras (a não ser que se use gambiarra) -------------------- então apresente uma solução inteligente e lógica... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 21, 2009 Brincando aqui, eu fiz a solução de ER com gambiarra... <?php $str = 'TENTANDO FAzer um LOOP doido EM um MONTE de PAlAvrA'; $partes = explode(' ',$str); // separo a string em várias palavras $palavras = count($partes); //conto qntas palavras tem a frase for($i = 0; $i < $palavras; $i++) { $palavraExplodida = $partes[$i]; //explode a palavra $letras = strlen($palavraExplodida); // conta qntas letras tem a palavra $conf = 0; //zera uma variável de "conferência". for($j = 0; $j < $letras; $j++) // percorre todas as letras da palavra { $conf += preg_match("/([A-Z])/", $palavraExplodida[$j]);//gambiarra para fazer uma conferência de qntas letras são maiúsculas } if($conf == $letras) { // se a qntidade de letras maiúsculas for igual à qntidade total de letras echo '<strong>'.$partes[$i].'</strong> '; // coloca a palavra em negrito } else // caso contrário echo $partes[$i].' '; // apenas coloca a palavra } ?> hAUhuaHuAHuAHuaH :lol:Sinceramente... não vejo uma forma melhor.... veja que a gambiarra foi somar o retorno booleano do preg_match, para saber se a palavra inteira casou, ou não. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 21, 2009 Eu pensei que você queria substituir string determinadas. Casas palavras específicas. Se for o que o William fez, sugiro algo mais smiples: $str = 'TENTANDO FAzer um LOOP doido EM um MONTE de PAlAvrA'; $str = preg_replace("/\b([A-Z]+)\b/", "<strong>$1</strong>", $str); echo $str; "\b" significa "borda" Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 21, 2009 "\b" significa "borda" HAUhauhaUhAUhUHA boooaaa http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif Me senti humilhado depois dessa ER... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif nem pensei no \b... estudei um poco de ER, mas ficar sem aplicar dá nisso... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Não conhecia essa função...ctype_upper interessante.. vlw OoDragooNoO $str = 'TENTANDO FAzer um LOOP doido EM um MONTE de PAlAvrA'; $partes = explode(' ',$str); // separo a string em várias palavras $palavras = count($partes); //conto qntas palavras tem a frase for($i = 0; $i < $palavras; $i++) { $palavraExplodida = $partes[$i]; //explode a palavra if(ctype_upper($partes[$i])) echo '<strong>'.$partes[$i].'</strong> '; else echo $partes[$i].' '; } hauhuahya enfim... dava para ter tido menos trabalho... eu fiquei quebrando letra por letra.... 2 loops encaixados compromoteria seriamente o desempenho do sistema... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 21, 2009 hehehehe Por isso que ER é um troço phod@! ;) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 21, 2009 muy bien muy bien http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 22, 2009 Heheheh Parabéns Beraldo agora sim pode dar como resolvido esse chamado.... Abraco a todos... KUROLE Compartilhar este post Link para o post Compartilhar em outros sites