Foros del Web » Programando para Internet » PHP »

concatenar strings

Estas en el tema de concatenar strings en el foro de PHP en Foros del Web. Hola , tengo un problemilla a la hora de concatenar un número $id con un string lo hago así /* nombre de un archivo que ...
  #1 (permalink)  
Antiguo 08/10/2008, 06:28
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
De acuerdo concatenar strings

Hola , tengo un problemilla a la hora de concatenar un número $id con un string

lo hago así
/* nombre de un archivo que he pasado por formulario */
$id=150;
$sufijo=(es la p delante del nombre de los archivos);

$file['name']=$id.$sufijo.$file['name'];



El problema que tengo al subirlo a la Bd es que si hago la concatenación le mete un guión bajo despúes de la id por amor al arte o dos o tres .

211____pcasa_madeira_m1.jpg 5 k 0644
211___pheroes_pc_1.jpg
Estos son algunos de los que he subido de prueba.

Si NO CONCATENO , es decir si dejo el nombre de archivo tal cual $file['name'] y se lo paso a la función que se encarga del upload , funciona perfectamente y NO PONE ningún _ delante del nombre del archivo. ¿Alguien sabe a que se debe esto?.

Gracias de antemano
  #2 (permalink)  
Antiguo 08/10/2008, 06:57
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: concatenar strings

Pues no hay "magia" involucrada, así que hay algo en tu código que está haciendo eso.
Sería cuestión de que revisaras las funciones que estás usando.


Saludos.
  #3 (permalink)  
Antiguo 08/10/2008, 07:10
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
Respuesta: concatenar strings

Cita:
Iniciado por alvlin Ver Mensaje
Pues no hay "magia" involucrada, así que hay algo en tu código que está haciendo eso.
Sería cuestión de que revisaras las funciones que estás usando.


Saludos.
Vale te entiendo y seguramente tengas razón , ¿pero entonces como se explica que sin no concateno no se añade ninguna maldita _ ?.
Es decir si no hago esto $file['name']=$id.$sufijo.$file['name']; antes de pasar a la función que se encarga del upload el nombre del archivo;si solamente le paso $file['name'] tal cual sin modificar la cadena funciona perfectamente y no añade ninguna _ ¿porque si concateno si?, por eso creía que hacia mal la concatenación.

Gracias
  #4 (permalink)  
Antiguo 08/10/2008, 07:41
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: concatenar strings

Solamente nos enteraremos si ponés el código involucrado
  #5 (permalink)  
Antiguo 08/10/2008, 09:41
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
Respuesta: concatenar strings

Cita:
Iniciado por alvlin Ver Mensaje
Solamente nos enteraremos si ponés el código involucrado
Vale acabo de encontrar el problema pero no se como resolverlo: (no pego todo el código porque sería un abarbaridad).
El tema es que si tengo un string "casa_de_pepe.jpg" y lo concateno con la $id
$string=casa_de_pepe.jpg;
$nombre=$id.$string;

Por alguna extraña razón no me lo pega ,sino que obtengo esto
152 casapepe.jpg y no 152casapepe.jpg como sería lo correcto ¿porque?, púes no lo entiendo supongo que la concatenación no estará bien hecha ¿no?.

le he metido la función trim al id por si acaso llegaba con espacios en blanco (la desesperación me ha llevado a probar), pero tampoco es eso

trim($id);

Bueno seguiré investigando y ya comentaré mi error por aquí cuando lo descubra, voy a pegar el código nuevamente aunque ya en otro post lo había hecho.

Nota: he modificado la función real , porque de esta forma se puede con el return saber que valor devuelve el nombre del archivo habiendo concatenado y sin concatenar, se puede apreciar como al no concatenar , si no concateno devuelve el nombre perfectamete , pero si lo hago deja un espacio ¡¡ese es el fallo¡¡ ¿pero porque lo deja ?, es decir 151 nombreimagen.jpg.

Acabo de comprobar que si asigno un nuevo valor a $id dentro de la función en cuentión SI FUNCIONA ¿entonces el fallo tiene que estar en el valor que le llega $id si o si verdad?. De todas formas pensaba que con trim($id) lo solucionaría pero nada.
Seguiré investigando.

Código:
function proces_img($file,$id) {
/* directorio de subida de imágenes */
include("diccionario.php");

$test=comprueba_foto($file);
	if ($test)
		{ 
			trim($id);
			//subimos la imagen convertimos los caracteres del nombre a minúsculas
			$file['name']=strtolower($file['name']);
			
			$file['name']="$id".$file['name'];

			
			/* comprobamos si tiene guines - y los sustituimos por guiness bajos _ */
		/*if (strpos($file['name'],"-") )
			$file['name']=eliminar_guiones($file['name']);  */
		
			//$name=substr_replace ($file['name'],$id,0,0);
			
		
			
			if ( upload_image($file,$path) )
									
			return $file['name']; 
			
			return false;
			
		 }
	else
			return false; 
			 
}

Gracias
  #6 (permalink)  
Antiguo 08/10/2008, 09:45
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
Respuesta: concatenar strings

Me respondo a mi mismo , ¡¡ lo he conseguido¡¡¡ , efectivamente el fallo estaba en el dichoso id que me llegaba con espacio todavía no se porque porque el form que lo envía lo manda como hidden de esta forma.
<input type="hidden" name="AdId" value="<? echo $AdId ?> "/>
Por algún motivo llegan espacios , luego me di cuenta que no estaba usando bien trim ya que hacía esto trim($id) jejeje pero no no era así sino $id=trim($id) .

Un millón de gracias por la ayuda que siempre brindais .
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 22:24.