Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *
- * -= Generator de CNP-uri =-
- * - scris din lipsă de ocupație -
- *
- * Salvează fișierul (gen „generator.php”) și rulează-l pe
- * un server care suportă PHP.
- *
- * Acceptă 3 parametri, anume:
- * format: {string}
- * are 5 valori posibile, anume:
- * „plain” - valoarea implicită
- * „html” - mai exact, HTML5
- * „xml” - XML, ce mama dracu' să fie?
- * „json” - așijderea
- * „markdown” - un soi de plaintext
- *
- * maxim: {int}
- * vârsta maximă a persoanei fictive pe care o
- * generezi; implicit e 30 ani
- *
- * extra: {bool}
- * implicit „false”; dacă-l setezi ca „true”,
- * pe lângă CNP, scriptul mai scuipă așa:
- * - sex
- * - data nașterii
- * - județ
- * - număr de înregistrare (la evidența
- * populației, gen)
- *
- * Parametrii îi pasezi fie din script, înainte de „echo”,
- * fie din URL (gen „generator.php?format=json&maxim=17”)
- *
- * Versiunea 1.1 și ultima, că deja mi-e sictir de el.
- *
- * EU (rockeh) NU SUNT RESPONSABIL PENTRU EVENTUALELE
- * CĂCATURI PE CARE LE FACI FOLOSINDU-TE DE ACEST
- * SCRIPT. DACĂ FACI CEVA MIȘMAȘURI ȘI TE PRINDE GARDA,
- * EU NU VIN LA PÂRNAIE SĂ-ȚI ADUC ȚIGĂRI ȘI PORTOCALE.
- *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
- function leapYear($year) {
- $year = (float)$year;
- if (fmod($year, 400) == 0) {
- return true;
- } else {
- if ((fmod($year, 100) != 0) && (fmod($year, 4) == 0)) {
- return true;
- } else {
- return false;
- }
- }
- }
- function cnp($format = "plain", $maxim = 30, $extra = false) {
- $luni = array(
- "ianuarie",
- "februarie",
- "martie",
- "aprilie",
- "mai",
- "iunie",
- "iulie",
- "august",
- "septembrie",
- "octombrie",
- "noiembrie",
- "decembrie"
- );
- $judete = array(
- 01 => "Alba",
- 02 => "Arad",
- 03 => "Argeş",
- 04 => "Bacău",
- 05 => "Bihor",
- 06 => "Bistriţa-Năsăud",
- 07 => "Botoşani",
- 08 => "Braşov",
- 09 => "Brăila",
- 10 => "Buzău",
- 11 => "Caraş-Severin",
- 12 => "Cluj",
- 13 => "Constanţa",
- 14 => "Covasna",
- 15 => "Dâmboviţa",
- 16 => "Dolj",
- 17 => "Galaţi",
- 18 => "Gorj",
- 19 => "Harghita",
- 20 => "Hunedoara",
- 21 => "Ialomiţa",
- 22 => "Iaşi",
- 23 => "Ilfov",
- 24 => "Maramureş",
- 25 => "Mehedinţi",
- 26 => "Mureş",
- 27 => "Neamţ",
- 28 => "Olt",
- 29 => "Prahova",
- 30 => "Satu-Mare",
- 31 => "Sălaj",
- 32 => "Sibiu",
- 33 => "Suceava",
- 34 => "Teleorman",
- 35 => "Timiş",
- 36 => "Tulcea",
- 37 => "Vaslui",
- 38 => "Vâlcea",
- 39 => "Vrancea",
- 40 => "Bucureşti",
- 41 => "Bucureşti (Sector 1)",
- 42 => "Bucureşti (Sector 2)",
- 43 => "Bucureşti (Sector 3)",
- 44 => "Bucureşti (Sector 4)",
- 45 => "Bucureşti (Sector 5)",
- 46 => "Bucureşti (Sector 6)",
- 51 => "Călăraşi",
- 52 => "Giurgiu"
- );
- // sex
- $sex = rand(1, 2);
- // an
- $an = rand((date("Y") - $maxim), (date("Y") - 14));
- // fix sex
- if ((date("Y") - 14) >= 2000) {
- if ($sex == 1)
- $sex = 5;
- else
- $sex = 6;
- }
- // luna
- $luna = rand(1, 12);
- if (strlen($luna) == 1) {
- $luna = ("0" . $luna);
- }
- // zi
- // an bisect?
- if (leapYear($an)) {
- $zi = rand(1, 29);
- } else {
- // februarie?
- if ($luna == 2) {
- $zi = rand(1, 28);
- } else {
- // cu 31 zile?
- if (
- ($luna == 1) ||
- ($luna == 3) ||
- ($luna == 5) ||
- ($luna == 7) ||
- ($luna == 8) ||
- ($luna == 10) ||
- ($luna == 12)
- ) {
- $zi = rand(1, 31);
- } else {
- $zi = rand(1, 30);
- }
- }
- }
- if (strlen($zi) == 1) {
- $zi = ("0" . $zi);
- }
- // judet
- $judet = rand(1, 52);
- while (
- ($judet == 47) ||
- ($judet == 48) ||
- ($judet == 49) ||
- ($judet == 50)
- ) {
- $judet = rand(1, 52);
- }
- if (strlen($judet) == 1) {
- $judet = ("0" . $judet);
- }
- // registru
- $registru = rand(1, 999);
- if (strlen($registru) == 2) {
- $registru = "0" . $registru;
- } elseif (strlen($registru) == 1) {
- $registru = "00" . $registru;
- }
- $cnpTemporar = $sex . substr($an, -2) . $luna . $zi . $judet . $registru;
- // control
- $cifraVer = str_split("279146358279");
- $cifraCNP = str_split("". $cnpTemporar ."");
- $rezAdunare = 0;
- for ($i = 0; $i < 12; $i++) {
- $rezAdunare += $cifraVer[$i] * $cifraCNP[$i];
- }
- $cifraControl = $rezAdunare % 11;
- if ($cifraControl == 10) {
- $cifraControl = 1;
- }
- $CNP = $cnpTemporar . $cifraControl;
- // Output
- $ret = "";
- if ($format == "xml") {
- header("Content-type: text/xml; charset=utf-8");
- if ($extra) {
- $ret .= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>". PHP_EOL;
- $ret .= "<informatii>". PHP_EOL;
- $ret .= "\t<cnp>". PHP_EOL;
- $ret .= "\t\t<label>CNP</label>". PHP_EOL;
- $ret .= "\t\t<value>" . $CNP . "</value>". PHP_EOL;
- $ret .= "\t</cnp>". PHP_EOL;
- $ret .= "\t<sex>". PHP_EOL;
- $ret .= "\t\t<label>Sex</label>". PHP_EOL;
- $ret .= "\t\t<value>". (($sex == 1) ? "masculin" : (($sex == 5) ? "masculin" : "feminin")) ."</value>". PHP_EOL;
- $ret .= "\t</sex>". PHP_EOL;
- $ret .= "\t<data>". PHP_EOL;
- $ret .= "\t\t<label>Data nașterii</label>". PHP_EOL;
- $ret .= "\t\t<value>". $zi ." ". $luni[$luna - 1]. " ". $an ."</value>". PHP_EOL;
- $ret .= "\t</data>". PHP_EOL;
- $ret .= "\t<judet>". PHP_EOL;
- $ret .= "\t\t<label>Județ</label>". PHP_EOL;
- $ret .= "\t\t<value>". $judete[(int)$judet] ."</value>". PHP_EOL;
- $ret .= "\t</judet>". PHP_EOL;
- $ret .= "\t<registru>". PHP_EOL;
- $ret .= "\t\t<label>Număr registru</label>". PHP_EOL;
- $ret .= "\t\t<value>". $registru ."</value>". PHP_EOL;
- $ret .= "\t</registru>". PHP_EOL;
- $ret .= "</informatii>". PHP_EOL;
- } else {
- $ret .= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>". PHP_EOL;
- $ret .= "<informatii>". PHP_EOL;
- $ret .= "\t<cnp>". $CNP ."</cnp>". PHP_EOL;
- $ret .= "</informatii>". PHP_EOL;
- }
- } elseif ($format == "html") {
- header("Content-type: text/xml; charset=utf-8");
- if ($extra) {
- $ret .= "<!DOCTYPE HTML>". PHP_EOL;
- $ret .= "<html lang=\"en-US\">". PHP_EOL;
- $ret .= "<head>". PHP_EOL;
- $ret .= "\t<meta charset=\"UTF-8\">". PHP_EOL;
- $ret .= "\t<title>CNP</title>". PHP_EOL;
- $ret .= "</head>". PHP_EOL;
- $ret .= "<body>". PHP_EOL;
- $ret .= "\t\t<p><strong>CNP:</strong> " . $CNP . "</p>". PHP_EOL;
- $ret .= "\t\t<p><strong>Sex:</strong> ". (($sex == 1) ? "masculin" : (($sex == 5) ? "masculin" : "feminin")) ."</p>". PHP_EOL;
- $ret .= "\t\t<p><strong>Data nașterii:</strong> ". $zi ." ". $luni[$luna - 1]. " ". $an ."</p>". PHP_EOL;
- $ret .= "\t\t<p><strong>Județ:</strong> ". $judete[(int)$judet] ."</p>". PHP_EOL;
- $ret .= "\t\t<p><strong>Număr registru:</strong> ". $registru ."</p>". PHP_EOL;
- $ret .= "</body>". PHP_EOL;
- $ret .= "</html>". PHP_EOL;
- } else {
- $ret .= "<!DOCTYPE HTML>". PHP_EOL;
- $ret .= "<html lang=\"en-US\">". PHP_EOL;
- $ret .= "<head>". PHP_EOL;
- $ret .= "\t<meta charset=\"UTF-8\">". PHP_EOL;
- $ret .= "\t<title>CNP</title>". PHP_EOL;
- $ret .= "</head>". PHP_EOL;
- $ret .= "<body>". PHP_EOL;
- $ret .= "\t<p>". $CNP ."</p>". PHP_EOL;
- $ret .= "</body>". PHP_EOL;
- $ret .= "</html>". PHP_EOL;
- }
- } elseif ($format == "json") {
- header("Content-type: application/json; charset=utf-8");
- if ($extra) {
- $ret .= "{". PHP_EOL;
- $ret .= "\t\"cnp\" : {". PHP_EOL;
- $ret .= "\t\t\"label\" : \"CNP\",". PHP_EOL;
- $ret .= "\t\t\"value\" : \"" . $CNP . "\"". PHP_EOL;
- $ret .= "\t}, ". PHP_EOL;
- $ret .= "\t\"sex\" : {". PHP_EOL;
- $ret .= "\t\t\"label\" : \"Sex\",". PHP_EOL;
- $ret .= "\t\t\"value\" : \"". (($sex == 1) ? "masculin" : (($sex == 5) ? "masculin" : "feminin")) ."\"". PHP_EOL;
- $ret .= "\t}, ". PHP_EOL;
- $ret .= "\t\"data\" : {". PHP_EOL;
- $ret .= "\t\t\"label\" : \"Data nașterii\",". PHP_EOL;
- $ret .= "\t\t\"value\" : \"". $zi ." ". $luni[$luna - 1]. " ". $an ."\"". PHP_EOL;
- $ret .= "\t}, ". PHP_EOL;
- $ret .= "\t\"judet\" : {". PHP_EOL;
- $ret .= "\t\t\"label\" : \"Județ\",". PHP_EOL;
- $ret .= "\t\t\"value\" : \"". $judete[(int)$judet] ."\"". PHP_EOL;
- $ret .= "\t}, ". PHP_EOL;
- $ret .= "\t\"registru\" : {". PHP_EOL;
- $ret .= "\t\t\"label\" : \"Număr registru\",". PHP_EOL;
- $ret .= "\t\t\"value\" : \"". $registru ."\"". PHP_EOL;
- $ret .= "\t}". PHP_EOL;
- $ret .= "}". PHP_EOL;
- } else {
- $ret .= "{\"cnp\": \"". $CNP ."\"}". PHP_EOL;
- }
- } elseif ($format == "markdown") {
- header("Content-type: text/plain; charset=utf-8");
- if ($extra) {
- $ret .= "**CNP:** " . $CNP . "". PHP_EOL;
- $ret .= "". PHP_EOL;
- $ret .= "**Sex:** ". (($sex == 1) ? "masculin" : (($sex == 5) ? "masculin" : "feminin")) ."". PHP_EOL;
- $ret .= "". PHP_EOL;
- $ret .= "**Data nașterii:** ". $zi ." ". $luni[$luna - 1]. " ". $an ."". PHP_EOL;
- $ret .= "". PHP_EOL;
- $ret .= "**Județ:** ". $judete[(int)$judet] ."". PHP_EOL;
- $ret .= "". PHP_EOL;
- $ret .= "**Număr registru:** ". $registru ."". PHP_EOL;
- } else {
- $ret .= $CNP;
- }
- } else {
- header("Content-type: text/plain; charset=utf-8");
- if ($extra) {
- $ret .= "CNP: " . $CNP . "". PHP_EOL;
- $ret .= "Sex: ". (($sex == 1) ? "masculin" : (($sex == 5) ? "masculin" : "feminin")) ."". PHP_EOL;
- $ret .= "Data nașterii: ". $zi ." ". $luni[$luna - 1]. " ". $an ."". PHP_EOL;
- $ret .= "Județ: ". $judete[(int)$judet] ."". PHP_EOL;
- $ret .= "Număr registru: ". $registru ."". PHP_EOL;
- } else {
- $ret .= $CNP;
- }
- }
- return $ret;
- }
- if (isset($_REQUEST["format"])) {
- $format = (string)$_REQUEST["format"];
- } else {
- $format = "plain";
- }
- if (isset($_REQUEST["maxim"])) {
- $maxim = (int)$_REQUEST["maxim"];
- } else {
- $maxim = 30;
- }
- if (isset($_REQUEST["extra"])) {
- $extra = (bool)$_REQUEST["extra"];
- } else {
- $extra = false;
- }
- echo cnp($format, $maxim, $extra);
- ?>
Add Comment
Please, Sign In to add comment