Des notices partout dans mon script grrr

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Des notices partout dans mon script grrr

Message le Lun Oct 24, 2005 23:26

Voila, j'ai dev un p'tit script pour virer toutes les occurences de moins de 4 mots:

Code: Tout sélectionner
$var = "$titre";
$lenght = strlen($var);
$final = '';
$mot = '';
for ($i = 0; $i <= $lenght; ++$i)
{
    if ($var{$i} != ' ') //Si le caractère étudié n'est pas un éspace
        $mot .= $var{$i};
    else //Sinon c'est un éspace
    {
        if (strlen($mot) > 4)
            $final .= $mot .' ';
       
        $mot="";
    }
}

echo " le finale $final<br>";


Mais j'ai des notices en veux tu en voila sur ces deux lignes:

Code: Tout sélectionner
    if ($var{$i} != ' ') //Si le caractère étudié n'est pas un éspace
        $mot .= $var{$i};


Voici les notices:

Notice: Uninitialized string offset: 22 in c:\program files\easyphp1-8\www\jeunes\article.php on line 72

Notice: Uninitialized string offset: 22 in c:\program files\easyphp1-8\www\jeunes\article.php on line 73


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Mar Oct 25, 2005 8:02

Code: Tout sélectionner
$titre = explode(' ', $titre);
foreach((array) $titre as $key => $value) {
    if(strlen($value) < 4)
        unset($titre[$key]);
}


Voilou c'est plus simple comme ca sinon :)

Si tu veux garder ton code, je crois que l'erreur vient de ca :

for ($i = 0; $i <= $lenght; ++$i)

A mon avis c'est :

for ($i = 0; $i <= $lenght; $i++)


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Mar Oct 25, 2005 8:28

l'erreur vient surtout de ta configuration :-) faut pas afficher les notices

edite ton php.ini et met : error_reporting = E_ALL & ~E_NOTICE

Lymf
WRInaute discret
WRInaute discret
 
Messages: 189
Inscription: 12 Mai 2005

Message le Mar Oct 25, 2005 8:38

on dit un espace pas un éspace ;)

et sinon, le fait de virer les notices, ca ne va pas aider, il vaut mieux coder proprement et déclarer ses variables avant de les utiliser... Virer les notices ne va que masquer ce problème de soin dans le code.

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Mar Oct 25, 2005 8:43

e-kiwi a écrit:l'erreur vient surtout de ta configuration :-) faut pas afficher les notices

edite ton php.ini et met : error_reporting = E_ALL & ~E_NOTICE


au contraire, en mode debug, il faut garder les E_NOTICE pour essayer d'avoir le code le plus propre possible.
En mode prod on abaisse le niveau d'erreur reporting.

=> zimounet : tu as aussi la fct : str_word_count qui te permet de récupérer les mots dans un tableau associatif avec un peu plus d'options qu'explode.

http://fr3.php.net/manual/fr/function.s ... -count.php

Lymf
WRInaute discret
WRInaute discret
 
Messages: 189
Inscription: 12 Mai 2005

Message le Mar Oct 25, 2005 8:45

ya de l'écho par ici :)

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Mar Oct 25, 2005 8:55

Lymf a écrit:ya de l'écho par ici :)


je suis juste lent dans la rédaction de mes messages :lol:


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité