

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : fonction de Luhn en php</title>
	<atom:link href="http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html</link>
	<description>Bonjour et bienvenue sur le site Prometee-creation.com. Vous trouverez ici, le parcours de Francis Hilaire, ses créations, les actualités en tout genre, ainsi que quelques tutoriels élaborés par une équipe de passionnés</description>
	<lastBuildDate>Tue, 08 Nov 2011 18:56:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Par : Francis Hilaire</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-148</link>
		<dc:creator>Francis Hilaire</dc:creator>
		<pubDate>Wed, 19 Oct 2011 07:42:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-148</guid>
		<description>@Poulpos : Ce n&#039;est qu&#039;un court code très ciblé que vous pouvez modifier et réutiliser, il n&#039;est pas destiné à contrôler autre chose que la validité d&#039;une chaîne de caractère qui aura dut être contrôlée en amont par vos différents validateurs de saisies.</description>
		<content:encoded><![CDATA[<p>@Poulpos : Ce n&#8217;est qu&#8217;un court code très ciblé que vous pouvez modifier et réutiliser, il n&#8217;est pas destiné à contrôler autre chose que la validité d&#8217;une chaîne de caractère qui aura dut être contrôlée en amont par vos différents validateurs de saisies.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Poulpos</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-147</link>
		<dc:creator>Poulpos</dc:creator>
		<pubDate>Wed, 19 Oct 2011 01:13:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-147</guid>
		<description>Intéressant : en cas de paramètre vide, la fonction renvoie quand même true.
[ isLuhnNum(&#039;&#039;) =&gt; true ]

Penser à ajouter ceci en début de fonction pour remédier simplement au problème

&lt;code&gt;
if($length==0){
	return false;
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Intéressant : en cas de paramètre vide, la fonction renvoie quand même true.<br />
[ isLuhnNum('') =&gt; true ]</p>
<p>Penser à ajouter ceci en début de fonction pour remédier simplement au problème</p>
<p><code><br />
if($length==0){<br />
	return false;<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Francis Hilaire</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-62</link>
		<dc:creator>Francis Hilaire</dc:creator>
		<pubDate>Tue, 14 Oct 2008 14:09:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-62</guid>
		<description>Melnofil : Merci de ton intervention, j&#039;avoue que c&#039;est l&#039;habitude qui m&#039;as fait mettre ce $ret... Il est vrai qu&#039;il est complètement inutile.</description>
		<content:encoded><![CDATA[<p>Melnofil : Merci de ton intervention, j&#8217;avoue que c&#8217;est l&#8217;habitude qui m&#8217;as fait mettre ce $ret&#8230; Il est vrai qu&#8217;il est complètement inutile.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Melnofil</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-61</link>
		<dc:creator>Melnofil</dc:creator>
		<pubDate>Tue, 14 Oct 2008 14:02:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-61</guid>
		<description>Francis Hilaire :
J&#039;ai eu du mal à voir du premier coup comment circule la variable &quot;$ret&quot; tout au long de ton programme, pourquoi ne pas utiliser tout simplement :
return ($tot % 10 == 0);

As-tu une raison particulière d&#039;appeler la fonction &quot;substr&quot; au lieu de l&#039;opérateur &quot;crochets&quot; ?
$digit = $num[$i];

Xfigpower :
Je paraphrase Francis Hilaire en ajoutant que la division est généralement l&#039;opération de base la plus couteuse en temps processeur (quelque soit le language ou le processeur utilisé). Pire, ta multiplication par 2 est effectuée deux fois de suite pour rien !</description>
		<content:encoded><![CDATA[<p>Francis Hilaire :<br />
J&#8217;ai eu du mal à voir du premier coup comment circule la variable &laquo;&nbsp;$ret&nbsp;&raquo; tout au long de ton programme, pourquoi ne pas utiliser tout simplement :<br />
return ($tot % 10 == 0);</p>
<p>As-tu une raison particulière d&#8217;appeler la fonction &laquo;&nbsp;substr&nbsp;&raquo; au lieu de l&#8217;opérateur &laquo;&nbsp;crochets&nbsp;&raquo; ?<br />
$digit = $num[$i];</p>
<p>Xfigpower :<br />
Je paraphrase Francis Hilaire en ajoutant que la division est généralement l&#8217;opération de base la plus couteuse en temps processeur (quelque soit le language ou le processeur utilisé). Pire, ta multiplication par 2 est effectuée deux fois de suite pour rien !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Francis Hilaire</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-49</link>
		<dc:creator>Francis Hilaire</dc:creator>
		<pubDate>Mon, 09 Jun 2008 18:15:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-49</guid>
		<description>Merci pour cette précision Andras ;)</description>
		<content:encoded><![CDATA[<p>Merci pour cette précision Andras <img src='http://www.prometee-creation.com/wp-engine/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : andras</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-48</link>
		<dc:creator>andras</dc:creator>
		<pubDate>Mon, 09 Jun 2008 13:59:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-48</guid>
		<description>hum, il me semble bien qu&#039;il y a une erreur dans ton implementation : ça ne marche qu&#039;avec les nombres qui ont un nombre de chiffre pair (comme les CB) mais pas avec ceux qui ont un nombre de chiffres impair (comme les numéros SIREN). 

il faut remplacer la ligne :
    if (($i % 2) == 0)
par la ligne suivante :
    if ((($length - $i) % 2) == 0)

et là, ça marche pour tous les cas, il me semble.</description>
		<content:encoded><![CDATA[<p>hum, il me semble bien qu&#8217;il y a une erreur dans ton implementation : ça ne marche qu&#8217;avec les nombres qui ont un nombre de chiffre pair (comme les CB) mais pas avec ceux qui ont un nombre de chiffres impair (comme les numéros SIREN). </p>
<p>il faut remplacer la ligne :<br />
    if (($i % 2) == 0)<br />
par la ligne suivante :<br />
    if ((($length &#8211; $i) % 2) == 0)</p>
<p>et là, ça marche pour tous les cas, il me semble.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Francis Hilaire</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-31</link>
		<dc:creator>Francis Hilaire</dc:creator>
		<pubDate>Thu, 13 Mar 2008 17:17:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-31</guid>
		<description>Moi c&#039;est le (2*$digit)/10 qui me gène, ça donne forcément un float lorsque tu fais par exemple $digit = 1; Si tu travailles comme ça dans un autre language tel que Java ou C# ça ne passera jamais. Bon il est vrai que là on est censé recevoir un int et qu&#039;on l&#039;interprète comme un string donc bon...

Le -9 est déjà plus mathématique car on a forcément un chiffre compris entre 0 et 18 lorsqu&#039;on multiplie par 2 $digit et qu&#039;il correspond exactement à ce que l&#039;algorithme doit faire.

C&#039;est clair, c&#039;est plus rapide, mais pas à comprendre pour un néophyte...</description>
		<content:encoded><![CDATA[<p>Moi c&#8217;est le (2*$digit)/10 qui me gène, ça donne forcément un float lorsque tu fais par exemple $digit = 1; Si tu travailles comme ça dans un autre language tel que Java ou C# ça ne passera jamais. Bon il est vrai que là on est censé recevoir un int et qu&#8217;on l&#8217;interprète comme un string donc bon&#8230;</p>
<p>Le -9 est déjà plus mathématique car on a forcément un chiffre compris entre 0 et 18 lorsqu&#8217;on multiplie par 2 $digit et qu&#8217;il correspond exactement à ce que l&#8217;algorithme doit faire.</p>
<p>C&#8217;est clair, c&#8217;est plus rapide, mais pas à comprendre pour un néophyte&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Xfigpower</title>
		<link>http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html/comment-page-1#comment-30</link>
		<dc:creator>Xfigpower</dc:creator>
		<pubDate>Thu, 13 Mar 2008 12:38:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.prometee-creation.com/tutoriels/fonction-de-luhn-en-php.html#comment-30</guid>
		<description>Moi, j&#039;utilise perso une version plus courte (je n&#039;aime pas beaucoup le &quot;-9&quot; dans l&#039;algo)

//Fonction algorithme de Luhn
function isCB($numCB)
{
	//longueur de la chaine $numCB
	$lengthCB = strlen($numCB);
		
	//resultat de l&#039;addition de tous les chiffres
	$tot = 0;
		
	for($i=$lengthCB-1;$i&gt;=0;$i--)
	{
		$digit = $numCB[$i];
			
		$tot += ($i % 2)?((2*$digit)%10 + (2*$digit)/10):$digit;
	}
		
	return !($tot % 10);
}</description>
		<content:encoded><![CDATA[<p>Moi, j&#8217;utilise perso une version plus courte (je n&#8217;aime pas beaucoup le &laquo;&nbsp;-9&#8243; dans l&#8217;algo)</p>
<p>//Fonction algorithme de Luhn<br />
function isCB($numCB)<br />
{<br />
	//longueur de la chaine $numCB<br />
	$lengthCB = strlen($numCB);</p>
<p>	//resultat de l&#8217;addition de tous les chiffres<br />
	$tot = 0;</p>
<p>	for($i=$lengthCB-1;$i&gt;=0;$i&#8211;)<br />
	{<br />
		$digit = $numCB[$i];</p>
<p>		$tot += ($i % 2)?((2*$digit)%10 + (2*$digit)/10):$digit;<br />
	}</p>
<p>	return !($tot % 10);<br />
}</p>
]]></content:encoded>
	</item>
</channel>
</rss>

