Advertencia: strpos (): aguja vacía en …… complemento de wordpress [closed]

2 minutos de lectura

avatar de usuario
usuario57139

me sale este error:

Advertencia: strpos(): Aguja vacía en ……popularity-contest.php en la línea 2574

function akpc_is_searcher() {
        global $akpc;
        $referrer = parse_url($_SERVER['HTTP_REFERER']);
        $searchers = explode(' ', preg_replace("\n|\r|\r\n|\n\r", ' ', $akpc->searcher_names));
        foreach ($searchers as $searcher) {
                if (strpos($referrer['host'], $searcher) !== false) {
                        return true;
                }
        }
        return false;
}

¿Puede alguien por favor ayudarme a solucionar este problema?

  • on line 2574 — es mejor que separes tu archivo a uno más pequeño.

    – sectus

    12 de octubre de 2014 a las 13:08

Un montón de funciones de búsqueda de PHP utilizan los términos “aguja” y “pajar” como nombres de parámetros, indicando lo que se busca y dónde buscarlo.

los strpos la función es tal función. “Aguja vacía” significa que ha pasado un valor nulo o vacío como la aguja a buscar. Esto es como decir “buscar nada”, lo que no tiene sentido para la función.

Para solucionar esto, verifique que la variable que está pasando como la aguja tenga un valor real. los empty La función es una buena opción para eso.

La advertencia debería desaparecer si establece WP_DEBUG en falso en wp_config.php. Si quieres arreglarlo, prueba lo siguiente:

function akpc_is_searcher() {
        global $akpc;
        $referrer = parse_url($_SERVER['HTTP_REFERER']);
        $searchers = explode(' ', preg_replace("\n|\r|\r\n|\n\r", ' ', $akpc->searcher_names));
        foreach ($searchers as $searcher) {
                if ( ! empty($searcher) && strpos($referrer['host'], $searcher) !== false) {
                        return true;
                }
        }
        return false;
}

  • ¡Tu código funciona bien! ¡Gracias! Sin embargo, los nuevos problemas encontrados son: “Advertencia: preg_replace (): modificador desconocido ” en popular-contest.php en la línea 2572″ ¿Cómo resolver este problema?

    – usuario57139

    12/10/2014 a las 13:42


  • línea 2572 = $buscadores = explotar(‘ ‘, preg_replace(“\n|\r|\r\n|\n\r”, ‘ ‘, $akpc->buscador_nombres));

    – usuario57139

    12/10/2014 a las 13:45

  • Los patrones Regex deben estar entre “/”. Prueba esto: $searchers = explode(' ', preg_replace("/\n|\r|\r\n|\n\r/", ' ', $akpc->searcher_names));

    – Vlad Cazacu

    17/10/2014 a las 15:32

  • Se ve bien, gracias!! De mucha ayuda

    – usuario7346035

    8 de enero de 2021 a las 6:10

¿Ha sido útil esta solución?