algorytm.org

Implementacja w Php



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Numer dowodu osobistego - Implementacja w Php
Ocena użytkownikóww: *****  / 9
SłabyŚwietny
Nadesłany przez Mariusz Tomaszewski, 04 marca 2012 02:13
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

dowod_osobisty.php:
<?php
/**
program do walidacji nr dowodu osobistego

@author Mariusz Tomaszewski
@version 1.0
*/

/**
	Funkcja do walidacji nr dowodu osobistego
    @param string $_identity_card nr dowodu osobistego
    @return boolean flaga czy nr dowodu jest poprawny czy nie
*/
function check_identity_card_number($_identity_card){
	//sprawdz dlugosc podanego numeru
	if(strlen($_identity_card)!=9)
		return false;
	$identity_card = strtoupper($_identity_card);
	//tablica wartosci znakow
	$def_value = array('0'=>0,'1'=>1,'2'=>2,'3'=>3,'4'=>4,'5'=>5,'6'=>6,'7'=>7,'8'=>8,'9'=>9,
	'A'=>10, 'B'=>11, 'C'=>12, 'D'=>13, 'E'=>14, 'F'=>15, 'G'=>16, 'H'=>17, 'I'=>18, 'J'=>19, 
	'K'=>20, 'L'=>21, 'M'=>22, 'N'=>23, 'O'=>24, 'P'=>25, 'Q'=>26, 'R'=>27, 'S'=>28, 'T'=>29, 
	'U'=>30, 'V'=>31, 'W'=>32, 'X'=>33, 'Y'=>34, 'Z'=>35);
	//tablica wag
	$importance = array(7,	3,	1,	0,	7,	3,	1,	7,	3);
	//oblicz sume kontrolna
	$identity_card_sum = 0;
	
	for($i=0;$i<9;$i++){
		if($i<3 && $def_value[$identity_card[$i]]<10)
			return false;
		elseif($i>2 && $def_value[$identity_card[$i]]>9)
			return false;
		$identity_card_sum += ((int)$def_value[$identity_card[$i]]) * $importance[$i];
	}
	//sprawdz wartosc sumy kontrolnej
	if($identity_card_sum%10 != $identity_card[3]  )
		return false;
	return true;
}

?>
Dodaj komentarz