2010-06-10 6 views
7

Tengo un código que usa la función stristr para extraer los datos que necesito.php - Cómo me deshago de este extraño mensaje de "delimitador vacío"

Me da esta advertencia para cada iteración del bucle:

Warning: stristr() [function.stristr]: Empty delimiter in ... line 55 

el código funciona, aparte de esta advertencia. Aquí está el código:

$data = stristr("$text", "$key"); 
$result = string_limit_words($data,2); 
print "$result<BR>"; 

¿Cómo me deshago del mensaje de advertencia?

+0

Vaya a http://php.net/manual/en/function.stristr.php y busque el delimitador vacío. Hay comentarios allí y es variable a qué versión de PHP estás usando. – randombits

+1

nota: $ data = stristr ("$ text", "$ key"); invoca un análisis adicional que $ data = stristr ($ text, $ key); –

+0

@ Steve, pero el manual no ayudó con este, de ahí que pregunte aquí. @ Dan gracias por la sugerencia – Steven

Respuesta

6
$data = $text; 
if($key) 
    $data = stristr($data, $key); 
$result = string_limit_words($data,2); 
print "$result<BR>"; 

Básicamente sólo los stristr si la tecla $ (la aguja) no es una cadena vacía

+0

Gracias. ¡Creo que había una $ clave vacía que lo echó a perder por el resto! – Steven

1
  1. No nos has mostrado el bucle. Supongo que el código que publicó está en el cuerpo del bucle
  2. ¿Por qué usar "$ variable"? Las citas no son requeridas aquí.
  3. Puede suprimir las advertencias escribiendo @functionName();
  4. Comprobar si la aguja está vacía antes de aplicarlo
  5. HTML (< BR>) debe estar en minúsculas
+0

-1 no respondiste a su pregunta, sugirió que se suprimieran las advertencias como solución, y se molestaba con un montón de otras cosas que no eran centrales para el problema. –

+0

Editado. El resto es para tu información. –

+0

@Steven Oxley: En realidad, respondió la pregunta en el punto # 4. – animuson

1

Presupuesto de php.net stristr usuario: dpatton.at.confluence.org

Hubo un cambio en PHP 4.2.3 que puede generar un mensaje de advertencia cuando se usa stristr(), aunque no se generó ningún mensaje en versiones anteriores de PHP.

El siguiente generará un mensaje de advertencia en 4.0.6 y 4.2.3:

stristr("haystack", ""); 

O

$needle = ""; 
stristr("haystack", $needle); 

Esto no generar un mensaje de advertencia "Empty Delimitador" en 4.0.6, pero en 4.2.3:

unset($needle); 
stristr("haystack", $needle); 

Here's a URL que documenta lo que ha cambiado

+0

Consultado el manual y no ayudó, pero gracias – Steven

Cuestiones relacionadas