¿Como puedo saber cual es la forma correcta de utilizar el contenedor para el inyector de dependencias?

Estoy utilizando Symfony2 y cada vez que quiero usar el contenedor del inyector de dependencias tengo que probar una de estas tres formas dependiendo de si estoy en un comando, en un servicio o en un controlador.

¿Hay alguna forma de unificarlo? ¿Por que ocurre esto? ¿como puedo tener siempre accesible el contenedor?

$  prs = $  this->get('rickapp.propiedades'); $  prs = $  this->container->get('rickapp.propiedades'); $  prs = $  this->getContainer()->get('rickapp.propiedades'); 

Agradecería que me redirijáis a documentación en Español. Gracias:)

¿Como obtener el texto plano de una cadena HTML de forma segura?

Necesito obtener el texto que se encuentra dentro de una cadena HTML la cual puede contener código malicioso, por lo cual necesito que el método no ejecute scripts, descargue recursos externos, etc.

Ejemplo de HTML:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css" style="display:none;"> P {margin-top: 0;margin-bottom: 0;}</style> <script>alert('Cuidado script!')</script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> </head> <body dir="ltr">   <div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">     Buenos días Señor X.</div>   <div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">     Muchas gracias por el envió.</div>   <div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">     Cordialmente</div>   <div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">     Sr Y&nbsp;</div>   <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>     <table style="border-top: 1px solid #D3D4DE;">       <tbody>         <tr>           <td style="width: 55px; padding-top: 18px;">             <a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" target="_blank"><img onload="alert('Cuidado imagen!')" onerror="alert('Cuidado error!')" alt="" width="46" height="29" style="width: 46px; height: 29px;" src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif"></a>           </td>           <td style="width: 470px; padding-top: 17px; color: #41424e; font-size: 13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">             Libre de virus. <a href="https://www.avast.com/sig-email?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=webmail" target="_blank" style="color: #4453ea;"> www.avast.com</a> </td>         </tr>       </tbody>     </table>     <a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a>   </div> </body> </html>

Resultado esperado:

  • No se debe ejecutar ningún script
  • No se deben descargar recurso externo (imágenes, estilos, etc)
  • El resultado debe ser el texto:

    Buenos días Señor X. Muchas gracias por el envió. Cordialmente Sr Y Libre de virus. www.avast.com 

¿Por qué la base de datos me guarda las “ñ” de una forma extraña a través de un javascript?

Hace días he tenido problemas con la letra “ñ” al momento de guardar y listar, las letra se guardan bien y se muestra bien dentro del php y html, pero cuando reviso la base datos se muestra así: introducir la descripción de la imagen aquí

Esto se hace desde un javascript que es una table desplegable según el numero que se digite, osea sin digita 2 el javascript despliega 2 filas, etc.

código javascript:

var contLin = 1;  function agregar() {      var tr, td;     var con=0; while(con<document.getElementById('numer').value){      tr = document.all.tabla.insertRow();      td = tr.insertCell();     td.innerHTML = "<input type='text'  id='fts_nombre' name='fts_nombre[]'  onkeypress='return event.charCode != 39' >";     td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_apellido' name='fts_apellido[]' onkeypress='return event.charCode != 39' >";     td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_parentezco' name='fts_parentezco[]' onkeypress='return event.charCode != 39' >";     td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_edad' name='fts_edad[]'  onkeypress='return event.charCode != 39' >";     td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_escolaridad' name='fts_escolaridad[]' onkeypress='return event.charCode != 39' >";     td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_ocupacion' name='fts_ocupacion[]' onkeypress='return event.charCode != 39'>";      td = tr.insertCell();     td.innerHTML = "<input type='text' id='fts_vive' name='fts_vive[]' onkeypress='return event.charCode != 39'  >";      contLin++; con++; }  }   function borrarUltima() {     ultima = document.all.tabla.rows.length - 1;     document.all.tabla.deleteRow(ultima);     contLin--; }  function MAS(){ document.getElementById('pariente').style.display='block'; } 

introducir la descripción de la imagen aquí

¿Mejor forma de consumir un API rest en Android Studio?

Estoy desarrollando una aplicación en Java, para android, que permite consumir un Api rest remota. El api está desarrollada en Nodejs y muestra los datos desde SqlServer. Son aproximadamente 5000 registros los que están cargado actualmente en el Web server.

Estoy mirando la libreria de Volley, pero me dice que puede presentar problemas al momento de leer una gran cantidad de datos. ¿Cúal sería la forma de consumir datos desde este Api? Solo tengo que realizar el GET y el POST y mostrar los datos obtenidos en pantalla.

¿Existe una forma posible de usar el case del switch como “case (rango de números)”?

¡Buenas tardes! La forma en que lo digité en el título es obviamente errónea, pero es para que entiendan a lo que me refiero. Normalmente un switch case 1, el case siempre obedece a un entero, pero qué pasa si quiero un case que lea un rango de enteros posibles dentro de la variable del switch, por ejemplo

switch(edad())      case (edad()>=1)  

Aquí un ejemplo en código fácil de lo que me refiero.

switch(edadGato())     {     case 1:         cout<<"Al gato le corresponde la vacuna de la Rabia";         break;     case 3:         cout<<"Al gato le corresponde la vacuna de la Panleucopenia";         break;     default:         cout<<"Basado en la edad, al gato no le corresponde ninguna edad";         break;     } 

Si la edad fuese 2, no me detectaría que ya tendría una vacuna pendiente por tener más de un año (case 1), por eso, mi duda sobre si existe una forma algo como case (rango de números).

Nota: Sé que con if es más fácil, pero si en switch es posible, compártanlo conmigo. Gracias de antemano.

Cual crees que es la mejor forma de hacer un Splash, a mi me esta costando

Tengo unas dudas de como desarrollar correctamente que pasen datos de un Splash hacia el MainActivity. Estoy utilizando las librerías OkHttp y Gson, por que los datos recibidos es un JSON. Ademas no se si seria lo mas correcto de que la tarea sea Asíncrona, para que trabaje en segundo plano y cargue los datos. Pero no estoy seguro si lo estoy haciendo bien. Ya que la idea es tener un Botón en el Splash y que cuando pulsen cargue los datos del JSON mientras que se muestra una barra de precarga/preloader, hasta que se hayan cargado los datos correctamente y pase a la segunda actividad con los datos Json.

Splash

public class Splash extends AppCompatActivity {  public Button btnEntrar; public LottieAnimationView animation_view; public String URL = "https://www.midominio.com/questions.json";  @Override protected void onCreate(@Nullable Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.splash_activity);      btnEntrar = findViewById(R.id.btnEntrar);     animation_view = findViewById(R.id.animation_view);      btnEntrar.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             animation_view.setVisibility(View.VISIBLE);             btnEntrar.setVisibility(View.INVISIBLE);             AsynchronousObtenJSON();         }     });  }   public void AsynchronousObtenJSON(){     OkHttpClient client = new OkHttpClient();     Request request = new Request.Builder()             .url(URL)             .build();     Call call = client.newCall(request);     call.enqueue(new Callback() {         @Override         public void onFailure(Call call, IOException e) {             Log.d("Mensaje", "Peta la conexion con el JSON");         }          @Override         public void onResponse(Call call, Response response) throws IOException {             String json = response.body().string();             String idiomaDisp = Locale.getDefault().getLanguage(); //Identificamos el Idioma del Dispositivo             Gson gson = new Gson();             final Base base = gson.fromJson(json, Base.class);             Intent intent = new Intent(Splash.this, MainActivity.class);             intent.putExtra("base", base);             startActivity(intent);             finish();         }     }); } 

MainActivity

public class MainActivity extends AppCompatActivity {  public Base in;  @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);      in = (Base) getIntent().getSerializableExtra("datos");   } 

Precisava de uma forma de extrair informação de um site que trabalha com redirecionamento GET

A site só mostra as informações quando baixo a pagina por completo, exemplo: www.exemplo.to/algumacoisa.php a pagina aparece com “erro” em branco, mas quando baixo a pagina aparece todas as informações, gostaria de extrair o código fonte com algum comando para redirecionar as informações

Como criar novas rotas de forma dinâmica python/flask

Estou desenvolvendo uma aplicação que faz predições a partir de modelos, e queria implementar uma funcionalidade que me permita criar novas rotas através de uma função.

config = json.loads(open('config.json').read())  def create_models(config):     for key, val in config.items():         globals()[key] = initialize_model(val)  @app.route('/predict1', methods=['GET', 'POST']) def predict1():         if request.method == 'POST':                 try:                         information= request.data                 except Exception as e:                         print(e)                         return abort(400, e)                  try:                         results_inventory = predict1.pred(information)                         inventory = set_inventory(results_inventory)                         return jsonify(inventory)                 except Exception as e:                         print(e)                         return abort(500, e) 

Tudo está funcionando conforme desejado, config carrega meu json com as informações necessárias, create_models carrega meus modelos, predict1 recebe as informações e devolve os resultados da analíse.

Acontece que tenho mais de um modelo e queria disponibilizar uma nova rota para cada um deles, aqui um exemplo do meu config.json

{     "predict1":     {         "model": "cfg/configurationfile1.txt",         "load": 115,         "threshold": 0.25,     },      "predict2":     {         "model": "cfg/configurationfile2.txt",         "load": 600,         "threshold": 0.10,      }  } 

Como tenho dois modelos dentro do meu config.json, precisei criar uma nova rota manualmente, que é identica a primeira alterando apenas os locais do código onde aparecem ‘predict1’ para ‘predict2’, ficou assim:

@app.route('/predict1', methods=['GET', 'POST'])     def predict1():             if request.method == 'POST':                     try:                             information= request.data                     except Exception as e:                             print(e)                             return abort(400, e)                      try:                             results_inventory = predict1.pred(information)                             inventory = set_inventory(results_inventory)                             return jsonify(inventory)                     except Exception as e:                             print(e)                             return abort(500, e)  @app.route('/predict2', methods=['GET', 'POST'])     def predict2():             if request.method == 'POST':                     try:                             information= request.data                     except Exception as e:                             print(e)                             return abort(400, e)                      try:                             results_inventory = predict2.pred(information)                             inventory = set_inventory(results_inventory)                             return jsonify(inventory)                     except Exception as e:                             print(e)                             return abort(500, e) 

Existe uma maneira de automatizar esse processo de criação de rotas, para que o próprio script gere uma nova rota sempre que uma nova configuração aparecer no meu json ?

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';  }   ?>