Php

Baía

Power Member
Boas noites...

Estou aqui com uma dúvida na manipulação de strings em PHP... aqui vai
A minha intenção principal é pegar numa string de, p.e., 16 caracteres:
"Ola eu sou o Baia" e reduzi-la a uma string com 8 seguida de "...", ficando:
"Ola eu s...", é claro que a minha intenção real é fazer isto com digamos... strings com mais de 64 caracteres... transformá-las em strings com apenas 64 caracteres mais "...". Por as reticências é cagada! Mas eu n consigo é criar uma nova string temporária para onde copie apenas os 64 caracteres da string original para dps lhe juntar "..."! Alguém pode ajudar?

Thanx alot...
 
PHP:
error_reporting(E_ALL ^ E_NOTICE); //Não ligues a isto :P é so para o meu php não mostrar erros por declaração de variáveis
$string ="Ola eu sou o Baia e ontem dei um grande frango";//criação da string
$string1 = substr($string,0,17)."...";//corta a string de 0 a 17 e adiciona-lhe reticências
echo $string;//mostra string
echo $string1;//mostra string1

Penso que deve ser isso que pretendes :)
 
Última edição:
Função a usar (se é que percebi)

function hraFormatarStringNumCaracteres($string, $caracteres) {
$comp = strlen($string);
$sair = 0;
$string2 = "";
if ( $comp < $caracteres ) {
$string2 = $string;
} else {
for ( $i = $caracteres ; $i > 0 ; $i-- ) {
$char = substr($string, $i, 1);
if ( ($char == " ") && ($sair == 0) ) {
$string2 = substr($string, 0, $i); // Passa o Texto para a variável.
$sair = 1;
} // Fim do IF.
} // Fim fo LOOP.
$string2 .= " ...";
} // Fim do IF.
return $string2;
} // Fim da Função


// No fim chamas a função, dando-lhe o nº de caracteres que queres....
$string = "Acho que deve ser isto que tu queres, e daí até pode não ser";
$nova_string = hraFormatarStringNumCaracteres($string, 64);
 
BraBo disse:
function hraFormatarStringNumCaracteres($string, $caracteres) {
$comp = strlen($string);
$sair = 0;
$string2 = "";
if ( $comp < $caracteres ) {
$string2 = $string;
} else {
for ( $i = $caracteres ; $i > 0 ; $i-- ) {
$char = substr($string, $i, 1);
if ( ($char == " ") && ($sair == 0) ) {
$string2 = substr($string, 0, $i); // Passa o Texto para a variável.
$sair = 1;
} // Fim do IF.
} // Fim fo LOOP.
$string2 .= " ...";
} // Fim do IF.
return $string2;
} // Fim da Função


// No fim chamas a função, dando-lhe o nº de caracteres que queres....
$string = "Acho que deve ser isto que tu queres, e daí até pode não ser";
$nova_string = hraFormatarStringNumCaracteres($string, 64);

Desculpa mas esta função não faz exactamente a mesma coisa que o substr() ?
Simplesmente contornaste a introdução do elemento de contagem inicial...
 
Se calhar ...

Pelo que percebi, ele queria uma função que cortasse uma string por um "indeterminado" numero de caracteres, ou seja, que daria um numero máximo de caracteres e a função retornava uma string com esse comprimento mais umas reticências.
Esta função apenas não corta palavras a meio, que já não dá para fazer apenas com substr();

Se calhar era apenas retirar o comprimento da string que ele queria. Só lhe dei um add-on.
 
Última edição:
Back
Topo