Foros del Web » Programando para Internet » PHP »

substring por la derecha

Estas en el tema de substring por la derecha en el foro de PHP en Foros del Web. Hola, Alguien sabe como hacer un substring eliminando la última palabra? He probado con una función que me lo hace pero me da problemas con ...
  #1 (permalink)  
Antiguo 24/12/2004, 01:02
 
Fecha de Ingreso: marzo-2002
Mensajes: 188
Antigüedad: 22 años, 1 mes
Puntos: 0
substring por la derecha

Hola,

Alguien sabe como hacer un substring eliminando la última palabra?
He probado con una función que me lo hace pero me da problemas con los acentos, cursivas, ...

Me gustaría algo como esto:

$origen = "esto es un ejemplo de substring en una fra";
$destino = "esto esto es un ejemplo de substring en una";

Muchas gracias,
  #2 (permalink)  
Antiguo 24/12/2004, 01:51
 
Fecha de Ingreso: marzo-2002
Mensajes: 188
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola qtal,
Ya está solucionado:


function cortarTexto($texto, $marcador)
{
$pos = strrpos($texto, $marcador);
if($pos == false) {
return $texto;
}
return substr($texto, 0, $pos + 1) . " ...";
}

Y la llamada:
$texto = "Este es el string que se quiere cortar por la derecha"
cortarTexto(substr($texto,0,50), ' ')

Gracias
  #3 (permalink)  
Antiguo 24/12/2004, 04:17
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
Cita:
He probado con una función que me lo hace pero me da problemas con los acentos, cursivas, ...
Y el codigo que usas con el substring tambien te va a dar ese problema. ¿Por que? Porque se basa en caracteres de la cadena. Y en HTML a veces se usan mas caracteres para representar una letra. Por ejemplo, italica es una cadena de la forma <i>italica</i>, camión es cami&oacute;n, etc. Si a <i>italica</i> le mandas coger los 5 primeros caracteres, te queda la cadena <i>it, que incluso puede ser HTML no valido.

Saludso.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 24/12/2004, 04:27
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola a todos.

¿Esto podría funcionar?
Código PHP:
$texto "Este es el string que se quiere cortar por la derecha y/o izquierda";
$texto explode(" ",$texto);
array_pop($texto);
$texto implode(" ",$texto); 
Saludos,
  #5 (permalink)  
Antiguo 24/12/2004, 04:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Dependera de los formatos de entrada. Prueba con

esta no es&nbsp;ultima

o con

esta no es
ultima

(en lugar de espacio salto de linea).

O con

ultima palabra,¿verdad?

(sin espacios)

Supongo que todo sera cuestion de "tolerancia". Si en el 90% de los casos la funcion es perfecta, y en el 10% restantes el margen de error no destroza los resultados, pues no merece la pena complicarse.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 00:44.