Alguna forma de veriificar si el Correo es gmail o hotmail especificamente? al registrar un usuario?

Verna quiero saber si una pagina php puede permitir que solo correos gmail, hotmail, yahoo sean los disponibles para registrarse estuve leyendo pero no se como configurar esto de forma que al final haga die si el correo no es ninguno de los anteriormente nombrados.

<?? <?php   function validar_email($  email){      $  exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$  ";      if(eregi($  exp,$  email)){      if(checkdnsrr(array_pop(explode("@",$  email)),"MX")){        return true;     }else{        return false;     }      }else{         return false;      }  }   // para aplicarla   if (validar_email($  _GET[correo])){  // coloco las instrucciones  echo 'Es correcto el correo';  }else{  echo 'Es falso el correo';  }   ?> 

¿hay alguna manera de recibir datos de la url sin usar $_GET en PHP?

Vi una pagina en la que muestra imágenes al azar que funciona recolectando datos según la url, los usuarios ponen en la url las dimensiones de la imagen y se muestra, pero no es como la variable que conozco $ _GET de PHP index.php?x=0&y=1, en cambio la url era index.php/0/1. ¿Cuál es el método aplicado para obtener estos datos?
Soy principiante en esto espero que me ayuden
Url de la página: https://picsum.photos/50/50

¿Hay alguna forma de hacer responsivo el fontSize de un Text?

Actualmente estoy haciendo las vistas de una aplicación para tablet pero tengo algunos problemas con el Texto ya que todo se ajusta a las distintas medidas de pantalla menos mi “texto” y no he encontrado alguna forma de solucionar mi problema.

Container(                           height: MediaQuery.of(context).size.height/2.8,                           width: MediaQuery.of(context).size.height/2.35,                           color: Color(0xFFF1F1F1),                           padding:  EdgeInsets.all(20.0),                           child:                           ListView(                             children: <Widget>[                               Text("""12345""", textAlign: TextAlign.center,style: TextStyle(fontSize: 18.0,                                   fontWeight: FontWeight.w400,                                   color: Color(0xFF1D539B),                               ),                               ),                               Text("""Juan Perez Perez""", textAlign: TextAlign.center,style: TextStyle(fontSize: 18.0,                                   fontWeight: FontWeight.w400,                                   color: Color(0xFF141414)                               ),                               ),                               Text("""Operador de Valores""", textAlign: TextAlign.center,style: TextStyle(fontSize: 18.0,                                   fontWeight: FontWeight.w400,                                   color: Color(0xFF141414)                               ),                               ),                             ],                           ),                         ), 

Actualmente ocupo MediaQuery para ajustar mis contenedores a la pantalla.

Distintos tamaños: introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Existe alguna forma de obtener el último dato agregado sin que sea el último de la lista en Firebase?

Tengo una lista de números que dentro tienen ciertos datos, en los cuales voy agregando un valor “Sí” o “No”, como en esta imagen:

introducir la descripción de la imagen aquí

El último “Sí” que agregué fue el que se encuentra en el número 4, pero si hago un filtro en Firebase con

.equalTo("Sí").limitToLast(1) 

Me regresa el valor del “Sí” posicionado en el número 5 y no en el 4 que fue el último “Sí” que agregué a la base de datos… Existe alguna forma de reconocer el último “Sí”, sin la necesidad de que se encuentre en el último puesto de la lista?

Aún no encuentro la solución a esto, espero puedan ayudarme.

Muchas gracias.

¿Existe alguna razón por la que una columna de tipo ‘object’ NO tenga elementos str en pandas?

Cargo un dataset en concreto.

Miro los tipos de las columnas

df.dtypes 

Y obtengo:

varA        float64 varB         object varC         object varD         object varE         object varF          int64 varG         object varH          int64 varI        float64 varJ          int64 varK          int64 varL          int64 target       object 

Mi interés está en la varB. Al realizar las siguientes operaciones con

uniques = df['varB'].unique() strUniqueObj = [_ for _ in uniques if type(_) == str] if np.nan in uniques:     uniques_no_NaN.remove(np.nan)     nan = True uniques_no_NaN 

obtengo una lista vacía:

[] 

¿Existe alguna función en java para registrar los parámetros de un SP cuando lo mando llamar?

Estoy haciendo la llamada de un sp que tiene los siguientes parámetros de entrada y salida. NOMBRE IN EDAD IN SEXO IN COLONIA IN ESTADO IN DADO_ALTA OUT

El problema es que no quiero declarar cada parámetro uno por uno ya que son muchos.¿Hay alguna función que permita obtener automáticamente todos los parámetros de entrada para no tener que declararlos uno por uno? Este es mi código

StoredProcedureQuery query = this.getEntityManager().createStoredProcedureQuery("NAME_SP")                 .registerStoredProcedureParameter(1, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(2, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(3, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(4, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(5, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(6, Long.class,  ParameterMode.OUT);              query.execute();