Foros del Web » Programando para Internet » PHP »

Comodin en Variables

Estas en el tema de Comodin en Variables en el foro de PHP en Foros del Web. Buenas a todos, primero decir que e aprendido mucho leyendo este foro, pero hay una cosa que no encuentro o que no se como darle ...
  #1 (permalink)  
Antiguo 25/01/2013, 13:27
 
Fecha de Ingreso: enero-2013
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Comodin en Variables

Buenas a todos, primero decir que e aprendido mucho leyendo este foro, pero hay una cosa que no encuentro o que no se como darle forma, y es la siguiente:

Tengo una variable $codigo que me devuelve algo asi:

SE7Alfonso o SE9/SE7Alfonso o SE7Alfonso/SE9 o SE7Alfonso/9

Me explico

imagen SE7 para SE7Alfonso
Imagen SE9 para el resto

Osea todo lo que lleve / como quien dice se anula el principal si antes o despues de / hay un SE8 o un 8 pues imagen SE8, no se si me explico.

Con un

$pupi4 =strtoupper(substr($codigo,0,3));

controlo los 3 primeros, osea, si trinco el principio pero... ¿y si esta al final?, e provado haciendo juegos para que coja por el final o por el principio pero el caso es que no me va, aunque le diga

if ($pupi4 == $SE8) { $code = 'Eres SE8';} else { $code =' No eres SE8';}

si hay un SE7Alfonso/SE8, me dice que NO ES SE8, cuando me deberia decir que SI, hago otra

$pupi5 =strtoupper(substr($codigo,11,15)); (hablo de cabeza)

y añado

if (($pupi4 == 'SE8') OR (pupi5 == 'SE8')) { $code = 'Eres SE8';} else { $code =' No eres SE8';}

El caso es que tengo que hacer eso del 0 hasta el 9, y llevo todo el dia y nada, un agravante es que muchas veces no solo es Alfonso si no... jose entionces el numero cambia SE7jose, SE7jose/8, SE7jose/SE8, SE8/SE7jose... y asi con diferentes nombres y numeros, pero para que nos entendamos:

El base es el que no lleva /, si hay alguna / antes o despues, el numero que quiero salvar es el que hay antes o despues de /.

No e encontrado ninguna variable comodin para este caso, SI para consultas pero... en este caso no hago consultas.

Espero haberme explicado, es un poco lioso pero bueno no se como explicarlo mejor je je.

PD: tambien e provado jugando con preg_replace solo o jugando junto con las variables anteriores... y la verdad es que no se que aplicar en este caso para que darme con xxx/ o /xxx o /x y en su defecto cojer los 3 primeros caracteres de la variable siempre y cuando no exista /

Gracias

Fonsi Garcia
  #2 (permalink)  
Antiguo 25/01/2013, 16:44
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Comodin en Variables

Hola,

Realmente no entendí muy bien cual es el problema, pero si quieres sacar los últimos 3 caracteres de una cadena puedes hacer:

Código PHP:
Ver original
  1. substr($codigo,-3);

Si esa no es tu duda, intenta explicar un poco mejor .

Saludos.
  #3 (permalink)  
Antiguo 25/01/2013, 17:24
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Comodin en Variables

No he entendido muy bien la lógica de lo que quieres hacer.Pero parece que todo tu problema parte de encontrar lo que hay a un lado o a otro de una "/".
Usa explode().
Si el array devuelto tiene 1 solo elemento, no habia barra.
Si tiene dos, había barra.Lo que habia en la izquierda, está en la posición 0.Lo que estaba a la derecha, en la posición 1.A partir de ahi...
  #4 (permalink)  
Antiguo 25/01/2013, 19:01
 
Fecha de Ingreso: enero-2013
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Comodin en Variables

quike88 y dashtrash Gracias por responder, voy a hacer pruebas y os cuento.

Fonsi Garcia
  #5 (permalink)  
Antiguo 25/01/2013, 20:27
 
Fecha de Ingreso: enero-2013
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Comodin en Variables

A ver e provado pero.. no sigo en las mismas, voy a intentar explicarme mejor

la variable $codigo me puede devolver estos casos:

SE1xxxxxxx, SE1xxxxxx......
SE2xxxx, SE2xxxxxxx....
etc.... numeros del 0 al 9

pero tambien puede venir lo mismo que lo que e dicho antes pero que empiece por SE un numero diferente y /
ej:

SE2/SE1xxxxxx de este tengo que cojer el 2 o lo que viene antes de /

tambien puede venir que termine en /numero o /SEnumero
ej:

SE1xxxxx/SE2 o SE1xxxxx/4 en estos casos me quedaria con SE2 o 2 y 4 en el segundo caso.

Si no me devuelve ninguna / cojeria el numero que traiga

SE5xxxxxxx cojeria el 5
El tema de numeros pueden ser del 0 al 9

Quiero que segun que numero sea el que me valga, me diga que numero es, lo que tengo hecho es:

$pupi =strtoupper(substr($dxcall,2,2));
$pupi8 =substr($dxcall,-2);

if (($pupi == '8/') OR ($pupi8 =='/8')) {

$popo = '<b>Numero 8</b>';
} else {

$popo = '<b>NO ES NUMERO 8</b>';
}

pero resulta que si hay un SE8xxxx me dice que NO ES NUMRO 8 cuando si lo es

y si añado

$pupi4 =strtoupper(substr($dxcall,0,3));

y hacemos lo anterior añadiendo esto, quedaria asi:

if (($pupi == '8/') OR ($pupi8 =='/8') OR ($pupi4 =='SE8')) {

$popo = '<b>Numero 8</b>';
} else {

$popo = '<b>NO ES NUMERO 8</b>';
}

en este caso los que me jode son los que vienen como SE8xxxxxx/7 que me dice que SI SON NUMERO 8, cuando este seria 7

dejar claro que las xxxxx son grupo de letras, un nombre...

espero haberme explicado ahora mejor, porque por mas vueltas que le doy no me sale lo que yo quiero.

Gracias

Fonsi Garcia

Etiquetas: comodin, variables
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 16:02.