Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal preciso de outra ajudinha:
Tenho que fazer um script que substitua as cores de um texto, mas como são 4 cores o script que eu criei fica muito GRANDE:
<?php
function cor($texto){
$cores = array(
"oi" => "<font color='blue'>oi</font>",
"bd" => "<font color='red'>bd</font>" etc...);
return strtr($texto,$cores);
}
?>
Então eu estava pensando em criar 4 array um para cada cor assim:
<?php
function cor($texto){
$vermelho = array("oi" => "<font color='red'>oi</font>", etc...);
$azul = array("bd" => "<font color='blue'>bd</font>", etc...);
$verde = array("ol" => "<font color='green'>ol</font>", etc...);
$amarelo = array("ed" => "<font color='yelow'>ed</font>", etc...);
return strtr($texto,$vermelho);
return strtr($texto,$azul);
return strtr($texto,$verde);
return strtr($texto,$amarelo);
}
?>
Só que ele retorna 4 textos e eu não quero isso! Eu quero 1 texto com as o texto colorido. Além de ter que ficar escrevendo toda hora "<font color='red'></font>", vcs não poderiam me ajudar para tornar esse script mais LEVE e de fácil entendimento?Fiz do jeito que você me pediu e saiu assim:
<?php
function cor($texto){
$vermelho = array("oi" => "<font color='red'>oi</font>");
$azul = array("bd" => "<font color='blue'>bd</font>");
$verde = array("ol" => "<font color='green'>ol</font>");
$amarelo = array("ed" => "<font color='yelow'>ed</font>");
$texto = strtr($texto,$vermelho);
$texto = strtr($texto,$azul);
$texto = strtr($texto,$verde);
$texto = strtr($texto,$amarelo);
return $texto;
}
echo cor("oi bd ol ed");
?>
O resultado do script foi:
olor='red'>oi olor='blue'>bd ol ed
O resultado final está correto, a lógica que está errada.
Irei fazer um passo a passo da função para entender.
<?php
function cor($texto){
$vermelho = array("oi" => "<font color='red'>oi</font>");
$azul = array("bd" => "<font color='blue'>bd</font>");
$verde = array("ol" => "<font color='green'>ol</font>");
$amarelo = array("ed" => "<font color='yelow'>ed</font>");
$texto = strtr($texto,$vermelho); // a string texto irá mudar para "<font color='red'>oi</font> bd ol ed"
$texto = strtr($texto,$azul); // agora a string irá mudar novamente "<font color='red'>oi</font> <font color='blue'>bd</font> ol ed"
$texto = strtr($texto,$verde); // agora acontece o problema, veja que a string 'ol' irá aparecer não somente na ol informando na função, mas também estará nos "c'ol'or"s do font
$texto = strtr($texto,$amarelo);
return $texto;
}
echo cor("oi bd ol ed");
?>Valeu!
Uma função só possui um retorno, ou seja, os tres últimas 'returns' serão ignorados, além de ser POG.
Você só deve retornar a string, após o tratamento sobre a mesma estiver concluido.
Ao invés disso:
Faça isso