3v4l.org

run code in 300+ PHP versions simultaneously
<?php generate(); // FUNCTION function generate() { $digilist = "0123456789ABCDEFGHJKLMNPQRTUVWXY"; //now we generate a new random ID number using the substrings of the digitList string above for( $i = 0; $i < 100; $i++) { $three_chars = NULL; $three_chars .= substr( $digilist, rand( 1, 9 ), 1 ); $three_chars .= substr( $digilist, rand( 10, 31 ), 1 ); $three_chars .= substr( $digilist, rand( 10, 31 ), 1 ); if ($i < 10) { $three_chars .= '0'; $three_chars .= $i; } else { $three_chars .= $i; } $id = $three_chars; $key = get_key( $id ); echo $id . ":" . $key . "\n"; } } function get_key( $id ) { $digilist = "0123456789ABCDEFGHJKLMNPQRTUVWXY"; //ok so now we need to generate an MD5 hash of our ID $hash = md5($id); //cycle through the hash 16 (length of key) times (in steps of 2 because each hex bytes is 2 digits long) $i = 0; $key = NULL; for ($i; $i < 32; $i+=2) { //here we convert the next hex value to an integer and perform a bitwise AND operation against '31' //31 is the highest substring value in our digit list. $nextdigit = hexdec(substr($hash, $i, 2)) & 31; //if 'i' is divisable by 8 (every 4 cycles) then we want to add "-" if ((($i % 8) == 0) && ($i > 0)) { $key .= "-".substr($digilist, $nextdigit, 1); } else { $key .= substr($digilist, $nextdigit, 1); } } return $key; }
Output for git.master
4VY00:L5Y5-3HUN-NLD0-LJW7 7CK01:Y59Y-N5QY-4GT0-E3FY 5PP02:YACQ-M4K1-UM9E-9LYF 1JV03:FND4-4G77-5H4H-WTCP 1RE04:35XL-9RBQ-3TU0-9M68 1BG05:YKYF-A9N3-1V5H-RX6B 7VV06:KQ2B-7HDQ-LKF9-6A6D 9EK07:HJX4-RMAA-V40B-PFF1 6YU08:0JXD-040R-H1Y0-K84D 1TP09:W49M-2B4E-FH7B-HM50 9EJ10:D1Q8-5UFR-9FAF-XQEC 6AM11:8GG5-TJCF-EMV6-3LUD 5VY12:V8LG-8DAR-Y3W6-WBEK 2CV13:5KFV-LU4F-T3ND-WPHP 2BD14:EDUV-9RXR-6PDC-1JNX 2QX15:2EMX-7U82-Y4Q5-9KMM 7GH16:RMEB-7T15-CF4M-NVJ0 3PF17:1VDF-LFBF-EG3H-31VX 5VE18:NBNH-Q29X-LN04-PA83 6GB19:UFM4-NJQ8-TUAJ-DH6U 7JW20:TL9L-UH0Q-5AQ2-U0TY 9FM21:UBYX-3WXA-AH2H-TRUR 4CG22:B82P-CC9B-CEV7-2LJY 5QW23:8WEQ-FVV5-EN7E-YWCL 4AP24:6HJN-BMD1-AC58-PAKH 5WR25:QD2F-2RC1-3FNJ-P8NM 6NK26:2625-720K-1DY0-KUH0 3KM27:JWDG-WMYV-4QQC-0T56 2BM28:G038-HA8Y-KXU2-BMMW 8GJ29:J3RB-2LEH-67QQ-BT7X 6BB30:TV37-FCAR-E4CX-CJ80 7MJ31:VXNE-VLHH-64WV-T5MW 6VL32:896B-NYCF-Y8QD-1BT7 7LG33:30HG-95XM-D72W-XUF0 3JN34:0MR1-K2EC-FW9L-1G2D 4NK35:FVCC-EBNQ-CM0F-75LH 4DQ36:H14G-U53H-D05K-H798 1HU37:BPHX-6YFB-HTCW-B1BJ 9YR38:2PX1-1FNH-9TBR-GWDR 3UW39:9TDD-FJP9-TX84-047V 6HB40:V8J0-RH8J-JUR9-F2RA 9AB41:6FET-KV9D-YTB6-D34U 8NQ42:HEYN-6QPC-VMPU-A5FY 1AD43:X50W-PG91-N5LJ-GXMB 5XH44:PBRW-0V5H-C00Y-BK14 1HN45:41U4-QR5J-XYDY-GXCJ 7YE46:P2YV-JQVJ-HU8B-T41M 6QM47:KAT5-81W1-D71Q-24TJ 9GM48:9EX9-37DD-A3T6-6JH2 3VR49:YT5P-BN2U-6B1U-VLGN 5CA50:8UJ6-FMQ4-VQ4W-NNX7 8TT51:AHEU-74TR-YF3L-YUCV 9PQ52:EB5J-UBFB-131M-25QB 9UA53:V1FR-UDHU-JRYF-5BNK 5RL54:FUMH-1NUL-J9MT-EJKB 9DU55:NCML-V9T0-4XN7-WQHV 3PU56:GQRB-26HM-776U-G6NA 4JA57:N13V-V4NW-C6WY-EQ0P 5FP58:LT9W-9JYP-XTDL-EJCN 3XJ59:KR6M-JNLJ-5WDA-KH7N 4UX60:N412-K1LM-UXX4-4U8F 9DB61:JXDN-TPBY-RYXU-R60C 2YG62:ALYX-TD82-G0YP-382W 7RM63:EH2B-MBMX-Q8EY-CMMR 3WM64:DY5V-YAMA-T2AV-YBMD 4JG65:9G71-GG3B-G6DM-LQLV 9AJ66:NEXW-LDQ5-GWG7-HFX0 4GF67:CKJD-K66T-Y6Q7-30VU 4HT68:MH06-H93V-2622-LQHX 3TB69:ADVG-T608-57QP-G8W8 8FY70:EHAW-54RY-QGKH-6TW7 3PB71:6JGK-Q3DL-NATL-BWBQ 8QT72:7WTF-89U2-7ET0-C80Q 7EY73:Q970-5541-CYNP-6G9V 4DK74:960Y-E3YV-4LGC-9WU1 7BX75:9FJE-L89E-R799-FE1F 6CV76:KJ8B-EL9A-EY35-1U3T 8DV77:PUN1-QY7B-G7VA-TL0J 4TF78:Y6EL-EW7L-A55X-7UEL 1VC79:F5DM-8R3K-DWXG-V222 8GJ80:2WBF-REGT-9837-YNC6 5KX81:JLHP-V2RF-VEWA-HFDX 4WE82:E1KE-0F16-M4CT-4EHX 2MC83:0C9R-HTKY-H1KP-02GY 2RM84:L7P9-F7M5-95UV-FU5D 7DT85:UN4W-X8GN-JBK9-UJ8M 6NF86:96Q5-A8KH-GQ2T-G1E2 7RU87:XV4D-060M-B445-0WYQ 5FD88:E119-MH3H-HNU8-PV54 3YR89:A68G-KTF2-YD6P-HHQE 3DH90:838P-TG7H-7TAQ-8CD1 4RP91:MN6X-M62X-9QU7-JDGQ 6BK92:71U8-H26N-HDAH-H34Y 4VN93:WGPJ-D828-DU9K-DKD5 9RF94:AV1T-NMWX-83P6-9JPE 9JR95:7T29-GT6K-BPU6-9E0F 6CX96:B57D-BMWJ-Q85P-5RE1 8BW97:F66J-5Q4X-N900-E5CN 2WF98:9P4G-DGG1-CH4E-U162 9RB99:QQ48-FT5V-M9VB-WTEJ
Output for git.master_jit
1UN00:U6DW-CXCL-N2AH-HA5V 1GL01:NGA2-VVB1-FY79-452T 2DC02:YQGT-XWBA-BMCD-CR0K 1CG03:47V2-0UKK-1EN8-VFG6 9QD04:1DAB-4Q2V-K3QM-2YLN 4FU05:N8HH-PA9N-1C1D-Q6F1 8DJ06:310K-RWL6-2BCR-GTJ1 3LF07:XVM9-T6MY-YKA0-J4F2 7KP08:8ATL-9BTD-L6G4-T5KU 7DA09:CPVF-H9L8-5U20-5XY0 8QE10:YQF4-HDTM-G9EL-A80F 4UN11:DWFL-WHY2-PTNM-XHYV 2MM12:73LC-G7XX-BBX6-MXTK 7VC13:NY9C-5F9Q-FEMY-53HF 2JJ14:9AEM-RU1D-U809-39YE 5CF15:KDK9-V5KW-GGH7-JNAW 8BP16:R8PH-LEC1-YQNW-RCVU 5JT17:ULCQ-J72K-A04R-0UC0 6QH18:1EYE-8HEU-4LR0-9JNX 5DP19:CT21-T2L5-LJ6X-21L5 4DA20:PJKV-7HNY-AGJR-RVQ8 4FF21:K8V3-AYPU-KN7Y-DJYM 2AD22:F787-3XQ5-MTC8-3JE7 9EB23:8FGY-MT17-8CKM-KYRM 7RQ24:R1FK-9AAH-07TB-1WLT 3MW25:8TTQ-40MH-ECLP-UM3H 4ME26:AB5F-3PBL-A81V-EPU6 5QJ27:92VB-F7T0-Y4BC-MB8A 4UQ28:JACQ-M68N-WGJ8-XEV5 2FF29:UJXD-TQ9A-WVJ2-8X2G 2MH30:KY3P-9401-5GVC-N2TG 9JN31:YHC9-GQTY-C20D-U7CX 3UQ32:D1HT-FQED-84B5-GERN 2XJ33:3HJ0-28LG-4MXW-XU75 5GH34:EQVH-N8NF-THP5-3YP6 8FQ35:Y8U1-Y2P3-YAMP-YYD0 5EX36:2H91-PF2C-4D0Q-31J7 2YF37:XVHD-27PY-TE03-HFVP 5KR38:G54F-07P7-RCUM-W7UQ 5XN39:ELKR-63A9-K5VG-CPEH 7DR40:H6PX-81RJ-VMC4-RHG0 4FW41:PC3D-ARMP-JWD0-X290 4MT42:43HB-NJTA-7VKT-QJ3Y 6AX43:V61K-PDXA-WKUL-QDKV 2MF44:CFAR-405K-6H4Q-E394 5HV45:L5X3-0FR6-ULCC-MTL0 3NB46:PAKT-GTLR-JQC5-B5WX 7YX47:9701-ENQY-PPB8-HT7L 7CP48:7AQ5-Q510-KTKX-364D 9EN49:UWMV-1P44-UNDB-Y7B1 5WT50:HKJY-5FHE-C0DC-35H8 1XW51:YP4R-VCXK-MXV5-YT03 1QQ52:2XT9-DAHP-41W6-4TQP 7WQ53:DWF2-VA31-YPMN-8RND 9YG54:F15T-GPFP-AXGC-FTT8 2UF55:U6J3-QTKG-W69Q-MYKF 9QH56:RULN-K4NB-736X-FT4M 1UN57:HDQ4-DY9D-CYD2-M0RP 5CU58:1ERA-N1LM-CJUN-R8AU 7PQ59:TKFW-RAQ4-CR81-C2EC 8CJ60:V3YU-PK79-39WT-7VKN 8XM61:60M8-K2WK-RQ1N-G2T0 8XU62:24WD-HHFL-CTM1-JH4T 6PQ63:9048-7HP0-YH6T-E3CW 4VC64:NN7P-2E67-79TC-GCG9 8NG65:G7A7-5H8J-JET0-KYM3 3JF66:DWCC-5260-24B0-KM6J 5BJ67:J1HU-BHKM-KVBE-XDXN 4UK68:ELN7-J8NA-29XA-9E9B 3BN69:Y4CW-HM3R-NAW0-E4AN 3BT70:KXUB-LN0F-9NAL-MW6Q 5TV71:GQ00-TPEV-XJW7-GHJ4 3HP72:CNT2-CW41-VMJY-8KYV 5QX73:7PHU-TGXN-X3KC-N64A 4HE74:PHPY-9FX6-3WTH-XK3Q 9GT75:JQWE-D8F3-2J42-9A02 8DE76:0EM3-FWU2-Q35V-J5NH 7PH77:2DC5-1DVL-A2D0-GD4D 6RG78:96DG-B76P-PMPT-CC2C 6AQ79:TY8K-XMLA-KAK3-4BKM 9LM80:2CT0-YAJV-R853-C893 1QX81:6BKC-YH65-JHYU-5BH6 2LG82:G414-LHLW-PHU5-CPR3 2VV83:QHC3-H3HW-RQUN-MY6H 9YU84:4Y9V-WBLR-Y0KG-VX1X 8CU85:B2YK-RBW2-EVAA-C86G 2BN86:RJ1F-3F6B-3CP2-NAAK 9UF87:151R-FP5H-BBQJ-DE7R 6DK88:L7M2-M5B2-3BQX-F9LP 1RK89:9FH8-YLR1-9V60-4G13 4TU90:NYKD-GUX9-BA2T-LXNT 7BG91:Q570-F2R7-66JP-Y8QA 2VN92:HYEP-4YU7-UQBE-24HQ 6TE93:U570-PV20-3N80-KPJH 1CM94:XHRX-L6CL-XP4G-RMP0 6UY95:HJ8R-H09E-YQ46-R7DA 3WK96:ME38-H2KA-9BVN-3UNG 9GC97:AWFM-XQ4P-FFW6-MYPE 4KF98:W7AQ-7UCU-Y623-P76K 7DH99:U2RG-HX5X-K454-KAQK
Output for rfc.property-hooks
7CP00:3V9W-HG8R-T45B-682P 9CE01:FE3J-WMFL-RK9N-3N56 1YJ02:0Q9B-9HF9-0X1F-EEAT 4FL03:M4P6-4MQF-KWBH-2DH3 6QA04:BT7M-L5MT-VRLA-BT1P 2DC05:9PT9-M8E5-VCQA-MNFN 9CA06:Q4WQ-ECT2-KQ7A-EQV5 5XL07:P1AY-F4NU-1YV1-DLRC 4RQ08:W3VG-PX9J-4X3P-AW7B 8KK09:LM2H-TQXY-ENKM-RRL6 4JF10:VLJL-X4VW-5AL0-5FCN 8VM11:RT75-8RYK-9B3C-NJTE 8EP12:TVBU-QV3L-V6KT-8JWD 7LE13:X5VA-54FJ-BLA2-K8QH 9CG14:PEBU-YDWE-H8MU-TK8W 8GH15:82FE-7H7B-D7XU-YHJ4 2QY16:GWWP-GLJ6-8B86-5KBF 4YF17:VPRA-N17P-FMYV-7A1F 7VG18:1WRB-1EDJ-03WA-61M0 2RG19:AKLT-DXT3-0WAJ-N3KT 3JW20:GAU8-TKWY-C1CY-U4WV 6QR21:570U-FCQJ-FJGA-M4G1 6BC22:FGXB-M8NP-1BQC-6XGX 9HT23:QBX6-WJDH-EUV7-KE03 5DJ24:1AEW-BA33-M11W-0AU2 1XQ25:2MXD-RW0Y-03EF-AD6P 6EL26:KK7Y-9B3K-P43R-LBNP 8JG27:3PKJ-GLVY-X1VV-U72D 4AJ28:B1YW-90U7-FFGJ-6U7B 2JG29:EX9M-955W-NW2K-K0FK 9GC30:AUY2-76H6-K9BJ-G9RF 7HE31:1T6V-AHRW-FQYX-CP6N 6NC32:5B2Y-4WJ4-B43T-J1KR 6MY33:G0QM-0MDR-1Q1V-CGBC 3XP34:K2TH-9KTK-4X8B-VKA0 5WQ35:06EL-NVUV-7755-U274 6HN36:BVGM-A5A1-3EA5-HT0Q 3MQ37:XXA1-5E9F-GAPX-4JXR 5CA38:DLR5-0EN7-YVVG-UKM7 1BU39:9J1N-05BY-66RC-7HXY 3FN40:6P89-WKXA-M08T-D3Y3 8WT41:11E0-G60B-9YL3-XUGG 2YR42:EMX7-DVPM-7C8R-MCWB 8HT43:WWD3-BJDG-V7VW-QFUW 8WX44:A3RQ-TD2Q-VN71-AQP3 6YL45:YQLM-0PQP-WALK-H5CQ 8GG46:VDMU-MA5Y-TF8W-8E5B 6RR47:FH0Y-9NAY-1ECT-GNDW 2GA48:61EF-97LB-F52J-LBBR 7PG49:9RPK-AEWB-F84N-N1TA 7CX50:RLMH-1AH9-GM18-JQ6V 4JF51:ENBB-EV4E-RJDY-UEF2 3PL52:5TF2-XQ9R-NVAL-7EHP 2DQ53:89EJ-TDMU-WCUP-5W67 2CM54:8KJA-V14F-QP5D-0F9A 4VW55:84GY-CKTU-8EG1-58NV 7RW56:23HH-Y6D4-9P3R-PV4X 6TU57:37CA-WLUN-09L4-89LP 9JM58:FHKC-XJUB-AFG9-6UUG 9FA59:U8UJ-2DC6-M29K-32KM 5UP60:VAT7-XYAL-148A-51NA 6HX61:P6LT-XK2U-X3DR-6H65 2PM62:8MA5-UBU3-EGDG-JGWU 3TL63:HKWM-318W-R1V4-6922 5FX64:YTH7-FB2A-H0J7-Y25W 2KQ65:JULD-P5NX-6KBY-4TW2 5YC66:FT10-H9L4-U65E-Y273 9KP67:MFY1-FVER-6CN3-7BVA 1AA68:B7G3-90TV-BMMQ-VC15 9JB69:XV13-3V2Y-4QBL-V3DC 8WH70:N4KW-KGDV-FXPD-M41Y 5LN71:JYF3-9U0Y-84UC-407J 7PT72:H0J9-GCR8-6V4N-NPDF 8WT73:4DAK-FBV3-TBWH-M5TF 7VF74:6HRN-R5P9-QK7G-GAJV 9XM75:7F7V-WHRY-4QKN-27HT 5ME76:Q9CP-08M5-A31G-WH4K 6KP77:RVBP-8087-13KV-HJ07 9CY78:UNNV-D9PD-RN78-8PEA 9AW79:2YRT-QR54-EQLU-UUG5 2CR80:B51L-53E2-E2DX-N27H 8KY81:PJCE-M6CX-7TVH-471G 6YJ82:QA1W-LWJL-0CL9-YKYA 7XD83:9HG9-YTKW-PKGK-KNMD 6NN84:HT9V-E0M2-P139-PXMP 5CN85:Q0VT-EMFC-ADC4-4BGX 5FG86:RXU8-EVYE-7CJJ-3HD1 6HK87:XQCB-BH9G-X9T0-VH4B 3QK88:JGJB-03D3-K23Q-75MC 7FD89:0QBB-H767-CPG6-W8C3 9DD90:D7CE-5PVT-11HL-HRGG 3TF91:L1JX-87UQ-HA60-FBE9 6TQ92:DWJK-5K1W-JN1R-L0QQ 9CU93:DJKW-05M7-1DEG-70TX 1EW94:6B10-WJ40-NM3Q-3JBY 8MK95:J0U5-87V0-WCMC-BLR8 8EK96:TCRU-7T0D-QBP4-82VQ 6CY97:CHXT-GFRM-JU74-CUU7 1DD98:LJMP-1YJN-HM94-CBV8 6FH99:1FHU-G4U4-KFRU-4X9C

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
31 ms | 409 KiB | 8 Q