Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar los primeros y ultimos caracteres en una cadena URL

Estas en el tema de Mostrar los primeros y ultimos caracteres en una cadena URL en el foro de PHP en Foros del Web. Hola Colegas, Estoy haciendo una pagina de noticias que debera mostrar la URL, donde proviene la noticia, pero a veces es muy larga, quiero mostrar ...
  #1 (permalink)  
Antiguo 14/11/2014, 09:50
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Mostrar los primeros y ultimos caracteres en una cadena URL

Hola Colegas,

Estoy haciendo una pagina de noticias que debera mostrar la URL, donde proviene la noticia, pero a veces es muy larga, quiero mostrar solo el comienzo y el final si esta es muy extensa, esto fue lo ultimo que hice y he probado varias opciones pero no logro nada.

Código PHP:
Ver original
  1. $fuente = $row_not['fuente'];
  2. $cantcaracteres = strlen($fuente); //Aqui compruebo la cantidad de caracteres
  3. $fuenteinicio = substr($fuente,0,45); //Aqui recorto el principio
  4. $fuentefinal = substr($fuente,-10,10); //Aqui obtengo el final
  5.  
  6.  
  7. //Aqui compruebo que si la cantidad es mayor muestre el contenido completo, sino lo otro, pero cuando es mayor de 45, y tiene que mostrar el final me toma valores que ya estan comprendidos en la cadena inicial.
  8.  
  9.     if($cantcaracteres<=45){  
  10.         echo $row_not['fuente'];
  11.     }else{
  12.         echo $fuenteinicio ."..." .$fuentefinal;
  13.     }

Alguna idea?

EJEMPLO:

Cadena completa:

http://www.forosdelweb.com/f18/mostr...a-url-1113682/

Cadena a mostrar, por ejemplo:

http://www.forosdelweb.com/......cadena-url-1113682/
  #2 (permalink)  
Antiguo 14/11/2014, 10:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Mostrar los primeros y ultimos caracteres en una cadena URL

¿Y cuando dices que "no logras nada" qué significa?

¿Obtienes un error?

¿No recortada nada?

¿Salen gansos de la nada?

Vamos que tampoco vamos a leer tu mente o adivinar los resultados que obtienes ¿o si?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/11/2014, 11:22
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Mostrar los primeros y ultimos caracteres en una cadena URL

creo que tu problema radica aquí $cantcaracteres<=45

esa condicional no se cumple con las url largas debería ser $cantcaracteres>=45
  #4 (permalink)  
Antiguo 14/11/2014, 11:34
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Mostrar los primeros y ultimos caracteres en una cadena URL

Bueno, de esta forma resolvi el problema, aqui lo dejo, para el que pueda mejorar el codigo, bienvenido sea. Gracias.

Código PHP:
Ver original
  1. $fuente = "http://diarioti.com/por-que-la-videoconferencia-sigue-ganando-terreno-en-las-organizaciones/83837";
  2. $caracteres = strlen($fuente); //Contar la cantidad de caracteres de la URL
  3. $urlinicio = substr($fuente,0,45); //Extraer los primeros 45 caracteres
  4.     if($caracteres>=45){ //Si hay mas de 45 caracteres, gestionamos el resto
  5.         $urlfinal = substr($fuente,45); //Extraer el resto de la URL
  6.         $caracteres_final = strlen($urlfinal); //Contar la cantidad de caracteres del resto
  7.         $textofinal = substr($urlfinal,-10,10); //Extraer los 10 ultimos caracteres del resto
  8.         }
  9.        
  10.         if ($caracteres<=45){
  11.             echo $fuente;
  12.         }else{
  13.             echo $urlinicio ."..." .$textofinal;
  14.         }
  #5 (permalink)  
Antiguo 14/11/2014, 20:42
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Mostrar los primeros y ultimos caracteres en una cadena URL

tu logica no me satisface... tu limite de caracteres es 45 o 48?

para mi cuando muestras la url de procedencia de X articulo lo importante es el dominio de la misma, considerando que son 48 yo lo haría así
Código PHP:
Ver original
  1. $fuente = "http://diarioti.com/por-que-la-videoconferencia-sigue-ganando-terreno-en-las-organizaciones/83837";
  2.  
  3. if(strlen($fuente)>48){
  4.     preg_match('/http(s?):\/\/.+?\//',$fuente,$domain);
  5.     $fuente = $domain[0] . '...' . substr($fuente,-(45-strlen($domain[0])),(45-strlen($domain[0])));
  6. }
  7.  
  8. echo $fuente;

De esa forma siempre muestras 48 caracteres y sobretodo aparece el dominio de donde procede.

Etiquetas: cadena, caracteres, primeros, url
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 06:38.