substituição de trechos de uma string

Enviada por HSF 
HSF
substituição de trechos de uma string
27 de October de 2017 às 04:34PM
Olá pessoal estou precisando de um auxílio (sou leigo):
quero fazer um código que leia um texto do início ao fim e substitua caracteres dentro de determinadas palavras levando em consideração a quantidade de letras que a palavra tem, exemplificando:

Frase: As ruas são feitas de paralelepípedo

dai o código verifica se a palavra tem mais de 5 letras e substitui a partir da terceira letra os caracteres por um caracter tipo " - " tracinho. Assim o resultado ficaria:

Nova Frase: As ruas são fei--- de par-----------

Alguém pode ajudar?
Trambulhao
Re: substituição de trechos de uma string
28 de October de 2017 às 04:29PM
Feito em cima do joelho.. testa aí! Atenção: as vírgulas contam como parte da palavras

function ocultaPalavra($frase, $max = 5)
{
$piece = explode(' ', $frase);
$count = count($piece);

for ($i = 0; $i < $count; $i++) {
$len = mb_strlen($piece[$i]);
if ($len > $max) {
$piece[$i] = str_pad(mb_substr($piece[$i], 0, $max), $len, "-", STR_PAD_RIGHT);
}
}

return implode(' ', $piece);
}

$frase = ocultaPalavra('As ruas são feitas de paralelepípedo');
var_dump($frase);
Trambulhao
Re: substituição de trechos de uma string
28 de October de 2017 às 04:53PM
Sem contar as vírgulas.

function ocultaLetras($frase, $max = 5)
{
$piece = explode(' ', $frase);
$count = count($piece);

for ($i = 0; $i < $count; $i++) {
$word = $piece[$i];
$len = mb_strlen($piece[$i]);

if ($len > $max) {
if (substr($word, - 1) == ',') {
$piece[$i] = str_pad(mb_substr($word, 0, $max), $len - 1, "-", STR_PAD_RIGHT).',';
} else {
$piece[$i] = str_pad(mb_substr($word, 0, $max), $len, "-", STR_PAD_RIGHT);
}
}
}

return implode(' ', $piece);
}


$frase = ocultaLetras('As ruas são feitas, de paralelepípedo');
var_dump($frase);
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.