Des notices partout dans mon script grrr

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

Code:
$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:
    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
 
WRInaute impliqué
Code:
$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++)
 
WRInaute accro
l'erreur vient surtout de ta configuration :-) faut pas afficher les notices

edite ton php.ini et met : error_reporting = E_ALL & ~E_NOTICE
 
WRInaute discret
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.
 
WRInaute passionné
e-kiwi a dit:
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
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut