Ayuda PHP

keco

A ver, mirar estoy haciendo un cuadro de noticias asi tipo MV, que cuando le das t salen, xo tng un pekeño problema llamo a las noticias de la BD con un while, y meto dentro una funcion para acortar el titulo, y me dice lo siguiente (cuando tng 2 o más noticias):

Fatal error: Cannot redeclare acortartit() (previously declared in c:\appserv\www\commodders\secciones\home\funcacortartit.php:2) in c:\appserv\www\commodders\secciones\home\funcacortartit.php on line 2

entonces el cód del index es este:

$r = mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 7");

while ($row = mysql_fetch_array($r))
{
$texto = $row["titulo"];
include("secciones/home/funcacortartit.php");

echo '<a href=index.php?sec=noticias&id='.$row["id"].'>'.acortartit($texto).'</a>';
}

echo '</table>';

y el del include de la funcion este:


<?
function acortartit($texto) {
$limite = 25; //o lo que quieras tu
$longitud = strlen($texto); //medimos el texto
if ($longitud > $limite) { //si supera el limite...
return substr($texto, 0, $limite) . "..."; //lo devolvemos cortado y con lo ...
} else { //si no
return $texto; //lo devolvemos tal cual
}
}
?>

Bueno, a ver si alguien me puede ayudar para que la funcion afecte a todos los campos que coja la BD.

Venga un saludo, deW!.

SiPoX

Hum.. a ver si lo entendido.. lo ke deseas hacer es que por ejemplo en lugar de mostrar todo el titulo se muestren solo los 20 (u otra cifra) caracteres primeros?

Si es así te recomiendo utilizar la función substr.

Ejemplo: $texto_sacado = substr($texto_noticia,0,150);

Eso sacará los 150 primeros caracteres del texto que halla en $texto_noticia.

Espero que te sirva. ;) Saludos!! ;)

keco

Siiiiiii, funciona, thx ;););). dEWWW

Nemox

pq haces el include de la funcion dentro del while?

c2

Acostumbrate a crearte una libreria con las funciones y haz el include o require al principio de cada archivo que lo necesite.
No tiene sentido meterlo en el while.

Chulla

la funcion ke defines function acortartit($texto) io la veo muy estática, y cuando kieras postear alguna noticia de longitud no superior a 25 caracteres?

aki está :)

o lo metes en una funcion, o lo sin ella





$leerMas = strpos($texto,"<mas>"); // Devuelve la posición numérica de la primera aparición del texto <mas> en la cadena $texto
if ($leerMas>0)
{ $texto = substr($texto, 0, $leerMas)."<a href=\"noticia.php?id=".$row["noticia_id"]."\">Leer Más</a>"; }

ahora sólo tienes ke dividir la noticia introduciendo el texto <mas>
ejemplo :

El PSOE ha aconseguido mayoría absoluta , con <mas> una asistencia máxima del 70%...

sólo es un ejemplo xD

....

+info :

http://www.hospedajeydominios.com/mambo/documentacion-manual_php-pagina-function_strpos.html

http://www.hospedajeydominios.com/mambo/documentacion-manual_php-pagina-function_substr.html

Saludos

9 días después
Lg

chulla sinceramene te admiro xDDD

Usuarios habituales

  • Lg
  • Chulla
  • c2
  • Nemox
  • keco
  • SiPoX