es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿stripos desde un archivo externo?

Tengo este código ahora:

if ((stripos($text, 'badword1') !== false) ||
   (stripos($text, 'badword2') !== false))
    {
blablabla
}

Comprueba si en $text hay alguna de las palabras prohibidas y funciona bien.

El problema es que tengo varias palabras prohibidas, por lo que el código es bastante largo.

¿Es posible colocar todas las palabras prohibidas en un archivo externo y comprobarlo en lugar de ponerlo todo en el PHP?

Gracias.

EDITADO COMO SE SOLICITÓ, este es el código completo. Es un bot de Telegram en PHP:

if ((stripos($text, 'badword') !== false))
    {
    $content = array(
        'chat_id' => $chat_id,
        'message_id' => $message_id,
        'text' => "messaggio cancellato",
        'parse_mode' => 'HTML',
        'disable_web_page_preview' => true
    );
    $telegram->sendMessage($content);
    $telegram->deleteMessage($content);
    }

He probado una de las soluciones sugeridas, pero no funciona, como esta:

$blacklist = "blacklist.txt";
$contents = file_get_contents($blacklist);
$lines = explode("\n", $contents);

if ((stripos($text, $lines) !== false))
    {
    $content = array(
        'chat_id' => $chat_id,
        'message_id' => $message_id,
        'text' => "messaggio cancellato",
        'parse_mode' => 'HTML',
        'disable_web_page_preview' => true
    );
    $telegram->sendMessage($content);
    $telegram->deleteMessage($content);
    }
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible poner todas las palabras malas en un archivo externo y verificarlo en lugar de incluirlo todo en el código PHP. Aquí hay una forma de hacerlo:

    1. Crea un archivo nuevo llamado “badwords.txt” en el mismo directorio que tu archivo PHP.
    2. Coloca todas tus palabras malas (una por línea) en este archivo, por ejemplo:

      mala_palabra1
      mala_palabra2
      mala_palabra3
      

    3. Modifica tu código PHP para leer el contenido del archivo y dividirlo en un array de palabras malas:
      $lista_negra = "badwords.txt";
      $contenido = file_get_contents($lista_negra);
      $lineas = explode("\n", $contenido);
      
      $palabras_malas = array();
      foreach ($lineas as $linea) {
       $palabras_malas[] = trim($linea);
      }
      
    4. Modifica tu declaración if existente para recorrer el array de palabras malas y verificar cada una:
      $se_encontro_palabra_mala = false;
      foreach ($palabras_malas as $palabra_mala) {
       if (stripos($texto, $palabra_mala) !== false) {
         $se_encontro_palabra_mala = true;
         break;
       }
      }
      
      if ($se_encontro_palabra_mala) {
       // haz algo si se encuentra una palabra mala
       $contenido = array(
         'chat_id' => $chat_id,
         'message_id' => $message_id,
         'text' => "mensaje eliminado",
         'parse_mode' => 'HTML',
         'disable_web_page_preview' => true
       );
       $telegram->sendMessage($contenido);
       $telegram->deleteMessage($contenido);
      }
      

    De esta manera, puedes agregar o eliminar palabras malas del archivo externo sin tener que modificar el código PHP.

Comments are closed.