Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

KUROL3

[Resolvido] Colocar palavra em maiuscula

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

"\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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.