Foros del Web » Programando para Internet » PHP »

Manejo de cadena

Estas en el tema de Manejo de cadena en el foro de PHP en Foros del Web. Bueno saludo a todos. Tengo un pequeño problema, lo que quiero hacer es medir la longitud de una cadena y copiar una sudcadena. Pero pasa ...
  #1 (permalink)  
Antiguo 12/02/2003, 13:22
 
Fecha de Ingreso: diciembre-2002
Mensajes: 144
Antigüedad: 21 años, 4 meses
Puntos: 1
Manejo de cadena

Bueno saludo a todos.

Tengo un pequeño problema, lo que quiero hacer es medir la longitud de una cadena y copiar una sudcadena.

Pero pasa lo siguiente, la cadena esta en un archivo txt la cual yo lo abro y lo copio en $noticia.

Código PHP:
$noticia=file("../noticias/$dir/$archivo.txt");
  if (
strlen($noticia)<=778)
  {
  echo 
$noticia.'<br>';
  }
  else
 {
  echo 
substr($noticia,1,778);
  echo 
'...&nbsp;&nbsp;[<a href="../secciones/secciones.php?num='.$rows["cod_num"].'&codigo='.$rows["seccion"].'&llve=dos"><font color="#0000ff">ver m&aacute;s</font></a>]';} 
Bueno como ustedes podran ver loque quiero hacer es cuando un archivo tenga menos de 778 caracteres lo mueste todo de lo controrio me muestre solo 778 caracteres.

con es ese codigo me impreme Array. no se que es lo que tiene malo

Yo he echo otras pruebas pero no funciona y no se ques.

otra cosa que he notado

cuando yo coloco $num=strlen(noticia); el valor devuelto es 7
y cuando lo colo asi $num=strlen($noticia); me devuelve 5 y lo que yo quiero es que me devuelva el valor de la cadena que esta asiganada en la variable $noticia. Tambien lo echo así $num=strlen("$noticia"); y así $num=strlen('$noticia'); y nada de nada monada.

La variable $noticia esta bien prque yo la colo en un echo y la imprime en pantalla.

Espero que me ayuden. Gracias
  #2 (permalink)  
Antiguo 12/02/2003, 13:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema q tienes es que file() lee un archivo si .. pero en un array (separados elementos por saltos de linea q tenga el archivo) .. No es una cadena lo q obteienes al usar file() ..

Fijate lo q dice el manual de PHP en la definición de la función:
Cita:
Reads entire file into an array (PHP 3, PHP 4 )
array file ( string filename [, int use_include_path] )
http://www.php.net/manual/en/function.file.php

Para volcar tu archivo a una cadena deberias usar implode() .. con eso "concatenas" todos los elementos del array en una cadena de caracteres .. usando como delimitador de elementos en este caso '' (nada):

Código PHP:
$noticia=implode('',file("../noticias/$dir/$archivo.txt")); 
Lo demas estaría correcto ahora .. ya q tu $noticia es un string (cadena).

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:41.