EAN 13 code checker
Auteur: BigTeddy - 02 september 2004 - 01:24 - Gekeurd door: Dennisvb - Hits: 5747 - Aantal punten: 1.25 (2 stemmen)
Ik had nog enkel kleine scriptje liggen die ik ooit eens had gemaakt naar een voorbeeld uit Turbo Pascal (kan ik ook nix aan doen hé) die we op school hadden gekregen.
Dit is 1 van de vélé, ik hoop dat er iemand nog iets aan heeft ;)
Dit scriptje controleerd of een EAN 13 code juist is.
Dit scriptje werkt doormiddel van een functie, het script kan direct gedraaid worden.
Code:
De functie ...
<?
function ean13_check($ean13)
{
global $_POST;
if(isset($_POST['controleer_code']))
{
$ean13_code = array();
$plus_pos = array();
$plus_neg = array();
for($tel=-1; $tel<strlen($ean13); $tel++)
{$ean13_code[] = substr($ean13, $tel, 1);}
for($i=1; $i<strlen($ean13); $i++)
{
$deel_van_pn = $i/2;
if(!ereg("[.]",$deel_van_pn)){$plus_pos[] = $ean13_code[$i];}
elseif(ereg("[.]",$deel_van_pn)){$plus_neg[] = $ean13_code[$i];}
}
for($tel_pos=0, $tot_plus_pos=0; $tel_pos<sizeof($plus_pos); $tel_pos++)
{$tot_plus_pos += $plus_pos[$tel_pos];}
for($tel_neg=0, $tot_plus_neg=0; $tel_neg<sizeof($plus_neg); $tel_neg++)
{$tot_plus_neg += $plus_neg[$tel_neg];}
$tot_som = ($tot_plus_pos*3)+$tot_plus_neg;
$eenheid_nog_lengte=strlen($tot_som)-1;
$al_voor_tiental=substr($tot_som, $eenheid_nog_lengte, 1);
if(10-$al_voor_tiental == $ean13_code[$ean13_lengte])
{echo "De code is aanvaard.";}
else
{echo "De code is niet correct.";}
}
elseif(!isset($_POST['controleer_code']) || strlen($ean13) <> 13)
{echo "Je hebt geen EAN 13 code ingevoerd.";}
}
?>
<?
function ean13_check( $ean13 )
{
if ( isset ( $_POST [ 'controleer_code' ] ) ) {
for ( $tel =- 1 ; $tel < strlen( $ean13 ) ; $tel ++ )
{ $ean13_code [ ] = substr ( $ean13 , $tel , 1 ) ; }
for ( $i = 1 ; $i < strlen( $ean13 ) ; $i ++ )
{
$deel_van_pn = $i / 2 ;
if ( ! ereg ( "[.]" , $deel_van_pn ) ) { $plus_pos [ ] = $ean13_code [ $i ] ; } elseif ( ereg ( "[.]" , $deel_van_pn ) ) { $plus_neg [ ] = $ean13_code [ $i ] ; } }
for ( $tel_pos = 0 , $tot_plus_pos = 0 ; $tel_pos < sizeof( $plus_pos ) ; $tel_pos ++ )
{ $tot_plus_pos += $plus_pos [ $tel_pos ] ; }
for ( $tel_neg = 0 , $tot_plus_neg = 0 ; $tel_neg < sizeof( $plus_neg ) ; $tel_neg ++ )
{ $tot_plus_neg += $plus_neg [ $tel_neg ] ; }
$tot_som = ( $tot_plus_pos * 3 ) + $tot_plus_neg ;
$eenheid_nog_lengte = strlen ( $tot_som ) - 1 ; $al_voor_tiental = substr ( $tot_som , $eenheid_nog_lengte , 1 ) ;
if ( 10 - $al_voor_tiental == $ean13_code [ $ean13_lengte ] )
{ echo "De code is aanvaard." ; } else
{ echo "De code is niet correct." ; } }
elseif ( ! isset ( $_POST [ 'controleer_code' ] ) || strlen ( $ean13 ) <> 13 ) { echo "Je hebt geen EAN 13 code ingevoerd." ; } }
?>
Voorbeeldpagina
<center>
<FORM METHOD=POST ACTION=''>
Voer de EAN 13 code in<br />
<INPUT TYPE='text' NAME='ean13'><br />
vb: 9789026034541
<br /><br />
<INPUT TYPE='submit' NAME='controleer_code' VALUE='Controleer'>
</FORM>
</center>
<hr /><br />
<? ean13_check($_POST['ean13']); ?>
<center>
<FORM METHOD=POST ACTION=''>
Voer de EAN 13 code in<br />
<INPUT TYPE='text' NAME='ean13'><br />
vb: 9789026034541
<br /><br />
<INPUT TYPE='submit' NAME='controleer_code' VALUE='Controleer'>
</FORM>
</center>
<hr /><br />
<? ean13_check( $_POST [ 'ean13' ] ) ; ?>
Download code (.txt)
Stemmen
Niet ingelogd.