Foros del Web » Programando para Internet » PHP »

strlen() modifica ciertas cadenas ??

Estas en el tema de strlen() modifica ciertas cadenas ?? en el foro de PHP en Foros del Web. A lo mejor lo que voy a preguntar es una tontería, pero me gustaría comentarlo... Tras pasar una cadena por strlen() para comprobar si su ...
  #1 (permalink)  
Antiguo 02/09/2011, 10:21
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 12 años, 7 meses
Puntos: 1
Sonrisa strlen() modifica ciertas cadenas ??

A lo mejor lo que voy a preguntar es una tontería, pero me gustaría comentarlo...

Tras pasar una cadena por strlen() para comprobar si su tamaño es menor que lo requerido, dicha cadena queda reducida al tamaño de comparación. Para evitar esto tengo que cargar primero el valor en otra variable, comparar y seguir con el código.

Código:
if (strlen(trim(odbc_result($qfabricante,2))) < 3) continue;
$qfabricante es el resultado de una consulta SQL sobre una base de datos y el valor que comparo es el segundo parámetro. Si el código lo dejo así, cuando quiero volver a utilizar odbc_result($qfabricante,2) me encuentro con que la cadena resultante se ha reducido a dos caracteres, por lo que, como decía antes, tengo que guardar antes dicho valor en otra variable para poder usarlo después.

¿Esto es normal o soy yo que estoy metiendo la pata con algo?

Saludos.
  #2 (permalink)  
Antiguo 02/09/2011, 10:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: strlen() modifica ciertas cadenas ??

Estas metiendo la pata en algo, ya que strlen() según el manual solo devuelve la cantidad de caracteres de la cadena.

Por favor, consulta el manual.
http://php.net/strlen
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/09/2011, 10:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: strlen() modifica ciertas cadenas ??

Cita:
Iniciado por pateketrueke Ver Mensaje
Estas metiendo la pata en algo, ya que strlen() según el manual solo devuelve la cantidad de caracteres de la cadena.

Por favor, consulta el manual.
[url]http://php.net/strlen[/url]
Ya me había leído el manual. Es lo primero que hice ante tan curioso comportamiento

Sólo escribo esto para que la gente me diga que soy yo el que lo estoy haciendo mal... Así me quedo tranquilo

Te juro que yo sólo escribo el código siguiente:

Código PHP:
$qfabricante=odbc_exec($conn,$q);
if (
strlen(trim(odbc_result($qfabricante,2))) < 3) continue;
if (
odbc_fetch_row($qfabricante)) $fabricante=trim(odbc_result($qfabricante,2));
$item[]=$fabricante
Si el registro es igual a 'OPTEL', en $item[] se guarda 'OP'.
Si cargo primero el valor en una variable, hago la comparación e igualo, todo va bien.

Repasaré todo el código linea a linea no sea que deje con dos caracteres algo antes de esto y esté por ahí perdido y dando por saco..

Gracias.
  #4 (permalink)  
Antiguo 02/09/2011, 17:13
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: strlen() modifica ciertas cadenas ??

¿Podría ser que la función obdc_result usara la primera variable por referencia? Es lo único que se me ocurre para un caso tan raro
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 02/09/2011, 17:38
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: strlen() modifica ciertas cadenas ??

Esto es por curiosidad, ¿Porqué no usas las llaves { .. }? y sí, lo sé, se pueden crear condiciones sin llave, pero podría ser una soluciones el usarlas.

El "continue" no comprendo porqué lo tienes ahí, pasara lo que pasara iba a seguir en el segundo if el script.

De todas formas leyendo el código del if está completamente bien escrito.

Etiquetas: cadenas, sql, variables, ciertos
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 02:30.