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
8JT00:GADL-9Q7E-F8XQ-Q4TW 5TL01:B4RJ-RMYK-YD7H-J9ML 2LA02:PHPB-MYJY-YC8C-G7MD 7FM03:3XA1-PKV0-2HBX-2C93 5VK04:192G-9DVP-CBKH-N2AD 7EA05:HNGQ-N9D5-979N-D1LV 9VD06:HM6N-0P8J-DEPA-F5G0 8NT07:6531-CDV5-6T43-N8GQ 3CQ08:FPGQ-LUB2-BFJ8-JD8M 7HF09:5G2L-NMRG-KRF2-DRPK 7DR10:3HUD-D7U8-57U1-H1RD 5NA11:NKXL-6DRT-0YPQ-DVGU 9DN12:NU5X-C8DY-EQ3X-Q60G 2NY13:RKQE-JVV6-TVRB-XUX5 3PQ14:K8MT-B0WQ-T1EH-B4J0 8NY15:KTAT-VYBX-CJYL-5B5Y 5NX16:BBTG-MCCN-7WFQ-3M58 9JL17:K6DL-XJDH-T255-MB1Q 3UA18:WG12-622B-B8TE-3F18 7JX19:2B2E-VA0B-6Q3W-204X 8VT20:VAHE-BJCA-FDH6-JURP 8UG21:NA76-6271-LULC-GDJP 5MY22:A3T9-2WD9-M7R6-6Y0P 1DT23:DYVX-9687-3CUL-LY8G 2UL24:DVC7-73T7-BKV7-A59L 4WT25:93DQ-5QWT-CEGA-PNWB 5BY26:V9YE-TW7G-A4UY-KR8T 1YP27:1A8L-JWVQ-8QTX-NNWG 7CP28:9M1M-NQGY-5Y72-EBUY 2PE29:J7EC-9BRD-FQM5-GL20 9YE30:6XTW-D2C4-Y7GT-FV9N 3HD31:73A2-FUUB-Y0RJ-MUK6 6RB32:FWBJ-2L6H-6WUD-5E47 7DF33:5QJU-DCG8-KYY7-G8DN 7YX34:RM8D-PV2V-G6X8-A0UG 1UQ35:FP1J-E5T0-98A8-WUY4 8QH36:EUCK-9R7K-Q6CG-3K27 1YU37:XPDP-0MP8-5V80-0BTA 2WM38:R0WN-469E-L5FV-MP4Y 8PC39:NUHE-1LVL-X8YC-PKN1 3MT40:1PAB-DF6J-2WTD-0JDV 3WH41:C5YR-LMJJ-KXDK-210L 9KN42:K7KL-XUCV-17WB-EUE1 8UX43:MH2U-ELCU-J5XN-5X1D 1DR44:FR47-3BWP-N6AX-2MJ1 6TP45:69XV-TC2B-FENL-A81Q 9EP46:BY61-L5VR-FGLR-QT6D 5EY47:4U1P-L0F2-3KWF-UW8A 6CW48:VT8R-UK3V-L171-P92M 1DE49:XY54-0WTK-XRPD-JA97 8PF50:5MGF-51T1-HQU6-03P0 7GX51:KE61-EPPL-EW1Q-1TA3 6EB52:CU98-AT3F-GDAN-D3CH 8GQ53:KRH8-W90V-56MU-1AKN 7KA54:V1WA-7146-82HU-EWRK 8BX55:AKXB-38T2-A67V-381W 5RV56:WT04-GAUC-77PJ-G917 7JG57:8C7L-YWPT-4EKQ-1G5F 3GY58:T6AX-PX8D-P7BY-VP1R 9AE59:4DBJ-L5U2-H2Y1-G19F 5LV60:T5C2-AHQA-57F6-8MBL 6VL61:GKK7-FR1A-ULAM-2346 1WQ62:RALT-QW7J-1JLF-DYPU 2UP63:EEEX-QHWJ-F315-R79D 9BL64:G8E0-A07W-16DP-QAV2 3NJ65:8V6D-A4AE-9GMH-W1HA 1NL66:BYT7-VKHJ-QMM4-1AX8 1YR67:VG7K-VFR3-B1P2-KXQG 3RD68:RE5P-EWTF-7HX6-MYL6 5GL69:4XG3-F45F-Y2QG-AQHL 9AK70:L52C-0KTF-88DM-49P9 8TL71:8XKH-BYY0-98LJ-L7NU 6WE72:D68K-7FLJ-BFE2-EYFJ 1JJ73:Q9YR-MULE-CT6Q-7RLW 5UF74:3FA3-P52C-RM35-4PHM 1FE75:DUQ8-LCJU-Y0TM-F05U 7EY76:H9G1-601T-5BKN-LJMP 4BT77:TXFY-MJ8J-7VWB-MPAG 1JG78:3C10-8JGG-0TG0-P53G 4VA79:VVCG-FLJA-YJHP-3AUF 8DD80:TCM4-Y0C8-LJ6R-5UB0 9KF81:4JL0-6PPN-KYHR-X2L3 6HH82:XEQL-5WTX-MYDL-4V6D 9PW83:KW7D-APDQ-7QTR-WC9F 9MG84:72LC-TB7M-C87U-RJCQ 7WP85:G7V1-JMFR-FC44-B6HQ 6XT86:8XW9-2301-45P8-V2V8 5UT87:GHDV-5TKV-CG4R-BY71 1GC88:9RML-WDJM-1W61-GRTY 8HL89:01CW-GU24-65FU-JA72 2WF90:2NYM-HUMH-2JDL-TRTU 1HA91:Q7D2-YULM-M5L5-3YLQ 8UX92:1FAQ-EBC6-UL67-DVN5 4VL93:GEP9-4R79-2CNH-DJFV 1XW94:FDH9-ADG9-GUC8-5KUD 7KB95:8W4W-0LF5-49FC-W6GK 7EE96:3QBG-QC6P-Q740-XK9P 5VK97:BPR5-L5G9-VKXG-1FUG 7LU98:1JQ9-0WMJ-4D8E-J300 8BP99:FXX1-9L7V-10XX-XYMG
Output for git.master_jit
3KM00:6BC1-YFFK-6R25-JQ3C 3MB01:01XR-47J4-TUFA-PCHR 1EA02:FP82-MLYT-8YGT-GN9G 6AA03:89XK-QPXX-J4EE-R3MM 2FD04:R4NV-GUR4-EJFD-CVMG 9HW05:D34Y-AYB1-JATJ-46BW 5UJ06:3VUH-E60B-DY6G-MBXY 3WX07:J833-QMEG-REPH-JVN6 7VM08:7FLP-BBJV-3BRQ-ALEW 9MA09:PA9N-Y223-784K-H2RF 7QG10:PWET-1WU4-KE0L-UAD4 7AR11:F59F-YFNM-WDBC-UJVY 8RG12:4E19-MJTN-K1VE-7GFU 1FF13:8EY8-TPTR-MYL9-JPD9 5LB14:0M9L-8EX9-BL4U-GMUK 6ML15:AY4G-9MHK-05M2-HAYU 2EE16:DFB9-YJ38-5JLU-MR3R 9KF17:FJHM-K89Y-4VEM-L6HF 6JN18:5PMM-PLBJ-GUEJ-FPBX 6BF19:CTEM-LU3B-YHCB-8DAM 6BE20:GB7K-WU0T-GU01-WV4Q 5DN21:X48Q-BVAY-D8WE-PMRG 9YV22:Q5R4-MFE5-2GCA-43FR 2NU23:L6UT-4A6X-N6K8-P7L8 9YV24:YM65-JPGG-7MY5-WGNV 6YB25:NVRP-N1K4-TVUA-TYJY 4GP26:3UJ9-VJ1R-M2B8-67LP 9MU27:1HRV-ER4B-5XP4-19JY 9LL28:RYUT-3C8H-TB2X-3NFJ 1LJ29:M9HU-T5LM-77DL-VP66 1EC30:PH5P-9XJC-J2WA-PU6P 7UH31:N0R2-784B-XDBQ-GD0W 1KC32:J2E2-P261-E3H8-WPL4 9MB33:TEE6-4DWX-0RTJ-PPAQ 7QG34:EQ5Y-RLY9-764X-1874 1DH35:QUNT-G5MA-A091-EX7D 3PF36:15HU-R4KQ-V9WK-2MX5 1JC37:RJXB-VMKY-JFN6-VK8X 3LH38:X89L-1050-8J9K-QUBL 1RF39:EP1T-C2PC-QMC0-DBED 2MW40:MH1Y-05ME-U5H9-4BHC 6PK41:6Y9C-DBBL-4KE7-2BCR 3GQ42:4FGT-N0KX-VJU8-0T3K 8KR43:WLF2-6MFU-5PG1-A1DC 2RV44:PHX3-U1M0-A26K-YAQV 3QD45:UL36-K5XG-H58M-V0JN 7PX46:HPA6-EWAK-MEY5-CXVB 6LR47:TGW1-6BQ4-1X40-CNGR 7CL48:TK73-B5RF-C2V2-J8VR 6LE49:QWKV-1XB4-WVA4-5MLR 2EP50:0QPU-Y1BB-P5MR-1U42 4XF51:UAMD-GA51-81GQ-P7D1 7EF52:5B6G-3J0D-YWVB-LFFG 1UB53:NVEQ-EDQB-AMWQ-HTM4 7TA54:8LJ8-JJ0Q-1T3K-4GEN 5VC55:XFBL-7XN8-XPQ1-JCHX 1CY56:BA42-4K1C-FWFX-3TWQ 4TP57:M9H8-XWQJ-6B2W-EX2H 9YG58:5NFD-VP4R-3HCP-8DWL 1HN59:NFAL-XUTC-XAGM-6FW1 4VF60:XRPD-17MK-E35A-5DPT 5VQ61:QUWB-911X-4QCX-DJVV 7BM62:8WVQ-WWMM-EGK4-37MM 6HT63:GXML-B6UR-99TP-5MKP 5YJ64:5DN6-QDEP-CEA2-JKBT 9HQ65:9RRV-M6C3-UKVY-7NPJ 9WR66:4573-BKUF-CRHL-9LCH 3WW67:MBTR-HYVF-P61C-5R2D 8WF68:7BUG-FQQF-94LN-VXHL 9HE69:59T5-84FR-Y10U-AEQ8 5RQ70:0W31-UCL5-T3E1-YKVG 7VD71:TK3X-TH7A-FWPK-3M1J 5WE72:PWC4-N2NE-6WC0-GV0P 9VD73:E18C-4JJW-D5RT-VWYV 9FM74:CJJ0-QHCQ-DVJM-1G0M 5KY75:H46U-M2UL-J34Y-MRNN 6BD76:C4P9-7B8P-P6QB-5DH3 1TQ77:VMC6-1WVB-0HE3-LBBE 2GX78:6M31-4WME-TN3G-TEBB 5BA79:RVC0-5PR2-X7L7-9QMH 9AG80:L6U2-7NBL-EP9H-Q3N2 8XW81:3NRR-E4NF-FCJW-3060 7XN82:DGG4-C6B0-LMVB-3KY3 9MD83:K03C-W3LQ-1GEU-1FNE 4ET84:7156-33TA-BPFP-NTBM 4CB85:JK2G-UVHK-X4QQ-5W3V 5FM86:PEDB-37NN-4UH9-HYF3 8XG87:M944-JT1U-CEDD-X03C 9UA88:BNGJ-Q9DE-JH4X-U9R6 3EX89:7HAX-MD40-91L3-76NB 5MU90:K346-CA5W-R6QC-DMBN 9YP91:T5K3-MR1L-RVJ4-7KP7 2RX92:B5P6-VE64-C54P-9QD9 1JX93:PRA8-4UJL-UBT9-PEPT 7WD94:8QM9-LM45-P7TH-ERW0 3KJ95:JE1A-0NHX-KVDR-1FQ4 8DY96:XWAA-8HH2-F3L3-R7R0 3FB97:90B7-06M5-V6X1-GD5C 5QR98:W3CL-AT54-4RHN-WEHY 5DM99:J42L-M8WM-97W1-7YM5
Output for rfc.property-hooks
9BF00:3K2R-F0VN-L7EX-Y01F 5WQ01:FVQC-26GA-WEHK-TH4H 9KC02:DMRG-CFQK-7XDQ-VXPD 2QT03:EHQM-XNRM-F9GE-FM2J 8JA04:CG6C-K0CH-EJQ6-UYJC 3DF05:L5GG-DGX6-QHPY-L741 3QH06:UMQN-737F-LYF4-HHEY 4UU07:J8CB-6EKD-HV5M-PYJV 6VX08:L8LL-QACT-75GX-DVHG 6WH09:MXYH-6U0A-7FT3-9GPB 1JU10:66GX-YM28-52D8-R8GQ 5AY11:7EKX-HUBP-JF0J-WQJK 2VH12:Y6A5-KTX6-HFEW-DDUG 7RW13:XBRJ-YRA6-WCJM-GB26 9NX14:UTFY-U6MC-9FE8-40YQ 2XG15:YTF4-DLKY-VF80-R7P8 5RA16:YQDL-DM6B-JG73-27B5 3XH17:TL93-4GCC-9DQ8-MKYH 2RM18:58F3-86R5-07M2-MDJG 5XT19:90A6-V5BK-KK85-WVY7 5VB20:YHHM-N5LD-5023-83RF 4EV21:WJ1R-MP30-WAY1-36M5 2PK22:WB07-1R3C-MAW0-2YJQ 6PE23:A0U9-75BB-Q6AT-3AKG 2XR24:PHKM-FT0E-JCBQ-E05Q 6EY25:5KNA-YTLB-3NCD-P0TY 3UA26:UK9A-P8NL-AT59-9BFF 5XK27:6TNA-2BP7-649P-5EEG 9CF28:JKTU-54YK-GGU0-N897 8BK29:M1KA-Q9WG-52G5-V1G1 6HR30:9XWL-0V59-B7AD-67TD 3BQ31:YTQR-UB6G-NFDA-R0A2 6QX32:XL5W-BWP5-8H9J-W9BX 4NR33:U491-5ABW-5PFR-U2LK 9LY34:NRXF-81DB-QLT6-0VGQ 2JT35:E3DM-JPM2-AEUT-RT9E 6AY36:LC50-MN7E-926L-0W01 7PX37:BK6Y-WG9G-438P-CP60 8DA38:4FD6-W1BA-PJJ1-QPDL 7XX39:AUU6-NQ4H-TJ9V-WRTD 3BC40:GBWN-PB2Q-WHYE-V0TL 3GV41:C1WD-U088-KCD6-R18B 8VU42:W0AT-W1CV-3HCT-HDE4 1FB43:DLW5-9KL9-5VVR-MTLM 3XA44:84N7-P4JE-JH9H-EDD5 1NT45:D2HM-U8NE-3BAX-BXTE 4NQ46:QXL8-E4MW-33K8-F8W2 8CE47:HM73-L401-A2K3-RHTL 9UN48:HRM6-9XHL-286X-1586 5CU49:7KXD-0HEX-3598-5B47 5YQ50:1QH7-JV7E-VT41-4MDQ 3TE51:PVN4-EGND-AGGN-9RNB 3JA52:HC0L-4UP0-GE5B-DVY5 7EN53:PV8M-8UK8-8KPH-FXKV 8AP54:YUAW-H81H-L6TV-6RPP 5XN55:1FV6-FCMU-R2UJ-J69N 3CB56:BG8Y-G9AB-LA95-76PF 6UD57:G1JE-B6YV-U7VE-83W6 6VU58:JBHH-BHDL-UMYK-4AKM 7FB59:PQTP-PE0J-TJCH-MCRU 7UN60:GD4R-51T4-GHMK-6AJX 1EU61:LB8R-6KME-EWUP-LWUM 2NR62:9VE1-C5UV-61G5-YG02 7NP63:LTWY-H34H-K72R-1MUV 8XN64:XR74-17DQ-VAKH-N9LX 6AD65:ARN8-0TL3-E7WK-4M6F 1QM66:2F4C-LDTF-LQK5-L9MG 3QN67:BX4N-0N86-W61F-NWJU 7RG68:HLFL-C4E1-PU3P-3XXK 7MK69:HNWV-R32W-0UJU-T165 6BV70:6K6H-NDLW-65XM-8U3T 6AF71:YV7H-XWL6-E2A4-PWJN 2DW72:H62V-X4DX-9EHQ-K1XK 4JY73:JDMV-2VCP-RCHW-918X 7HT74:B71Y-2P6V-3EHQ-9CVU 8XQ75:FQ7W-RPVA-RK2L-4Y0W 9CN76:P80K-7GYC-W6M3-P0JM 1LP77:LXDN-CBJH-J8CJ-6V6R 3XR78:FN4E-2PFG-7W0W-HBBW 8RL79:NR9R-2Y5E-5Q36-C61U 1JG80:1A84-X0J9-WP8R-G73B 6RP81:1KGT-MNW6-0144-N8CU 7CX82:WNF5-U3EL-RU5G-FPM9 6VC83:2HHF-3L7L-FKGY-PKX4 5UQ84:K8A2-5W3W-EXFK-00WU 1KU85:EY3K-F15Y-28HK-4UMW 3BX86:LD80-RN8D-RXLF-VAUJ 9RT87:GQLK-MY4U-5XXR-JE8Y 1KE88:E0B7-3LGN-411X-QGWA 7NA89:RYW7-RQK8-AGXE-LAC9 9LC90:UQ4B-LUMN-9RLK-3DPP 7HA91:F586-U2HJ-AGCT-WM0Q 9VR92:FX0K-DVGF-35Q9-QVAX 6AC93:DA41-JW31-9XAJ-2T9E 6AW94:EXHG-UNU7-VQU0-XV2A 8LY95:NBF5-AWQU-DMLT-EL2T 2HW96:NRNE-D32X-LM6K-61A2 4KN97:7TJ2-PWFV-CTNC-G7GW 3GU98:XVKJ-FN2N-XWXA-G6YN 4QY99:249P-U48E-9TR4-XKPC

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:
30.81 ms | 409 KiB | 8 Q