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
6JT00:X6Y5-GCM2-3FUN-XVB8 8UT01:B0BQ-ADGM-32LG-1J53 3DD02:ANAA-PTW1-CDFM-XL4N 1LC03:01BW-E1H7-VCEW-XVLV 1EN04:HN9Y-Q4QD-H386-KR6T 4BH05:3QXE-DKPF-HMP6-FJ2M 1CT06:73TJ-PT3A-1QUP-5YNM 1TH07:2X4A-6XWT-KKDK-FJBY 8WB08:WDC6-Y33A-KX9M-40JT 6EE09:TJDT-0Y8M-W1TP-JEGQ 4GK10:VRJJ-K2RQ-V5QM-23JL 9LV11:HAPE-UAEK-KLNE-J8VE 4JQ12:RPFM-FKD3-9N7D-YADR 1YT13:WYD5-YM09-GQBB-R1KY 4TU14:N7RB-UV7C-EWXY-1L7D 9RQ15:9FP9-YX74-RTAK-WPJF 3VG16:81VE-FTDP-B976-74M9 7CX17:HP09-BYFP-T98A-YYQ6 3VN18:G7U3-U6C4-TELR-0JXU 1EU19:2CFN-1QGC-9NAW-DC9Q 8BH20:N5N2-VH9F-BD5X-EQJN 8BA21:EU6E-0V4D-39UQ-V8RK 6HW22:H71N-61E5-Q8CJ-N4F4 6KP23:WD2P-G1V0-0WRB-Y0KJ 2HY24:2UAF-NBF9-995C-X4L0 7TN25:RTW5-57KQ-0FT1-X1R7 6CH26:1AH5-8PEM-JCUN-CCF9 2NC27:WDMR-6KT6-N55H-5J8R 1WA28:PEKV-D81X-KU4W-4U6C 6CP29:D54U-JTMC-HJ9X-7D67 5MU30:HARN-6NCY-MK20-UAVA 2RY31:1CUF-M27L-VM9P-HQEN 6CX32:E8UJ-VHAC-CYQL-5W00 3PM33:W4FA-VYEA-06LB-UCRE 7NL34:A984-F41Q-2UEA-KJWH 2HG35:0228-FEXR-CGW3-R8V8 6DE36:7URY-P3G6-8FNM-UPDL 8HA37:X5QX-95JG-EJVA-C2T4 6DB38:E7Y6-YAA3-0WQC-0GJC 9KE39:WMG5-FW8W-08TV-8MLX 5HK40:FVNM-K9F9-JEE6-218L 5AY41:6M3W-VWGF-UGYH-66JC 8UU42:UFEM-AY5H-VKJA-719R 4FQ43:J8RA-B4WG-DW8L-M27W 2GF44:YLWX-0PPC-9721-6PWJ 7GB45:F3QJ-FH7C-0W7X-Q3GU 8RH46:8BXH-L6RK-VAG8-7V78 6MY47:VLMH-DXER-L5CP-3UPT 1TR48:19T8-ALDU-CGMN-9B4L 9EV49:QD8T-JVW0-385X-K5Q4 1RF50:NWT9-YGXL-KERG-JVLL 4NU51:7B58-1UHC-UBYG-KQKB 6AP52:QY6G-8HYH-CBB7-Q0P1 8MX53:PKQ7-7JHJ-TYJ0-KJUD 9WG54:BHWM-UB3Y-WYV9-L68L 5YG55:CCG5-BU87-PX94-3KLA 3HF56:A8A0-KCAV-JYEU-VFBN 1CV57:1T3H-8B1P-LXLY-EAWE 5UB58:MNKD-D74P-XTH5-5YT0 3CD59:FWAP-B0LW-N0TT-2HMW 9EB60:W377-DK5H-KX9H-FQNB 4JY61:G9YP-A023-VUL6-YMYR 1RA62:CRCD-H240-LRNB-3C6C 4LP63:KYR6-T82T-8N7G-PFEL 6ED64:FAX4-JM85-84BU-NKTV 7WN65:HJJ8-7591-66TJ-HXWM 4DE66:PHNJ-Q3UX-E0TR-76A2 3WF67:H1F9-HAUH-9E80-6RV2 7FA68:27GF-XA33-7FT2-D78E 1QU69:NYY1-CM9M-G1XK-F67J 4RM70:124K-EK8H-G41U-0WXH 7YN71:PVQH-VCHE-76VR-KFLF 5HJ72:7VJX-6XM5-2W94-9NN5 8DC73:0J7P-NLP1-B948-W7TL 7UW74:PPFD-H8RG-KW7G-YNKH 6TF75:14QG-FFAQ-QXPM-LCYU 1HJ76:3PNH-R0PB-3PD8-NDQT 5VN77:2MDT-U7QC-4FPC-CFXW 7UG78:B158-EG7H-QWK6-6H3C 6JQ79:G783-9L1A-D6XD-DWR3 5UH80:BHM1-326R-LXLV-UY3C 4UX81:07JV-BVPU-3RAA-LKTV 1MV82:45TE-K51B-GK42-MRUR 4EH83:19U3-CA70-4YWD-GGQ3 2YQ84:LNPH-BGFB-H2KC-RH2X 2BE85:EE1E-LJKF-HYR0-E5JC 8XJ86:DLKA-HE3T-20BA-HU6V 6DP87:RJ3K-VU18-QQ5K-QURD 8JG88:G8EV-LUL6-XEVJ-9J90 3DN89:J9XJ-JD13-48GM-9U9W 3FM90:Q5H4-Y6K7-170B-9DJC 9DB91:3NPJ-YMJQ-LYU6-UNPF 4TP92:P7MB-WYX2-QFP4-9PPK 5RC93:VMX9-5KX6-A7CW-EHP2 8TV94:Y9LE-FUVP-YL0F-R3TC 4BU95:M4JF-9EMV-9VUY-BMV2 1RG96:NLL8-MG10-RE34-RXPA 1CL97:3QKU-PARK-P7JH-P883 1BF98:EVCB-UYRE-N59T-9DUD 1CH99:DWXU-T34G-DDA2-6WJY
Output for git.master_jit
9QN00:FWN4-NPQK-D8UW-MN9H 1UW01:L2QF-G9A3-RENQ-QC68 3JV02:7K6K-62KJ-PQA4-772W 1TM03:50B5-6R4E-GXWN-YDYC 4GD04:R5XL-4128-RLPP-E9P6 7CN05:KGKU-5VJ2-EYHD-MHMQ 1XN06:M1L3-2HHL-RNEE-KK3W 7HH07:EFEH-JWAP-1C5M-W2L8 2MK08:P1ER-FKER-2NGL-9GX4 7TA09:HPQ4-Y61Q-02JF-5E81 4FN10:WU5W-T8AF-PVPU-55JH 2UU11:YG4F-8PGD-ULLD-5X9J 4XF12:5A9H-EL9Q-FHRW-25AU 3QU13:YVNJ-A5DL-Y1FK-HLUD 5KB14:F1YH-DN3H-F6R2-T7CB 5DK15:W21A-MMGL-CQB6-6DNU 9QA16:59K1-8199-D53D-WU2N 9DD17:X0RE-CY6F-NX04-81M3 6XB18:DMLF-X9H4-2VJR-DN51 3LC19:A6BQ-HDW6-4Q84-3JMC 1PW20:F9FX-KYGJ-EQ1X-7DTR 3LX21:F1R4-MCY8-56UE-E3NC 1ME22:1J5Y-4UF8-JD2G-4BBD 8VU23:PXQT-6LX2-BP79-TM72 1DF24:RPH1-BHWU-ACJH-6JB3 4NT25:RV0J-392W-QA2L-BWHW 8UN26:B0NU-44UC-JUC0-LJ1A 5EB27:7BN8-0BAA-VELP-926V 2JT28:UJ7F-9J7P-U3QJ-VFPL 6CQ29:Y9N6-28UP-1D4E-BWXC 4KE30:2B09-RKKK-4AK7-ERCH 1DQ31:LVNY-MCJW-G2MT-6B9H 1YB32:VVJY-9Y4R-PBRL-LPL9 1EB33:U3LK-UDF0-BAH3-V60L 9WN34:79FL-TB80-9MFP-FDNM 8XK35:ALFT-0DFU-2L4X-DNGF 7AU36:BR2B-WULK-RQW9-VHUW 4JX37:GNBU-750P-WXK9-CNFE 7WQ38:LGEW-7DDY-76W1-RJ40 1XY39:3XJU-DY7M-VCJF-895W 7AX40:UTUF-EU7P-G41A-1J0P 6AC41:84RQ-PFNT-G5RV-42M1 8HU42:LCD5-W5RL-91MY-JUT7 9TT43:L1HX-7CPL-6M23-3H79 6TG44:AT2W-D75P-Y46J-583B 1YP45:VF74-13M3-DG7T-TJMA 9XT46:YNV2-622L-LXHT-UQNK 7FL47:18AM-R45V-P21T-02P5 3QP48:CRMM-A988-U8FM-JVWD 2GX49:1U8W-HVT5-R9LP-E75Y 4XT50:RJU7-T30B-EMP0-T49W 8BW51:GB7G-1VTH-9FLE-YAE9 9GJ52:JRXN-AKC0-6YP5-7U80 7GG53:TUXW-M4PP-GLE4-7828 6RK54:86KD-KW7P-JLDL-LX8C 6DL55:FVHM-J5QU-7N8M-2FN0 4BQ56:E68M-PQXG-GFHJ-79AA 4AX57:G0MX-YWTX-JGVC-N5K9 6KK58:BBAV-9N1H-B2QF-MN95 3WN59:QTEG-6TDX-0JM0-8T4J 6EF60:KXJB-LUNH-L81K-6MBQ 5AL61:4TG4-5F05-H286-JBYQ 5PJ62:9RKT-7QPF-AMHG-FJNG 4PU63:5QJ9-UWDT-NN1F-WKJ5 5WY64:XXRJ-58CX-68AU-LB0N 4CE65:8W3Q-UEXE-7QRT-7MUC 6LQ66:2GB0-EDW0-8X55-4AYF 3NP67:CV08-XUPQ-7E57-6N9V 2NF68:24DC-YPV0-E16G-TTLG 4GX69:8F62-9PA6-J2H8-2QBW 1PY70:7Q9C-WJGH-JPND-C7LP 9XA71:Y72R-7W6B-8K4H-6D1P 3HM72:DP3T-DERV-M0VC-MWU5 5AV73:XBG2-C5PX-FAJ2-E3VL 9JR74:HHTM-HFV2-LMNK-TV2J 9JX75:4NXR-BYLV-E78N-4JLN 2DY76:TVUB-RQMB-GFRM-CWPT 9XE77:VMTU-6WUD-FUTE-R9T4 2XK78:HP2F-NC5H-8WGA-H97N 3BQ79:CHR6-LAF9-QH6J-K9JU 9RT80:5D6Q-W96X-DVNT-F4PC 9BL81:GRXK-8VTJ-L63L-92K8 7VP82:7A8K-M9HB-8KT4-HM2Y 5GW83:TVJV-JHVD-XAVP-LCM5 1GF84:RWDL-3J50-CLRK-4J6J 9CY85:GD5X-1VH1-BMKF-W24X 2YT86:GPWA-XGQ1-CH7Y-VCKN 9EJ87:K120-348U-K3NB-V9UX 7FK88:8A9T-XNBA-5CHB-GXX9 6RD89:FU1P-P3V5-GFMB-3CXP 1NY90:5JEA-TQU2-K6Q8-N09W 5ER91:B1JM-2GJW-KJTK-9GDU 7BN92:P12B-XLC2-A9FF-HKBJ 5NQ93:UCNP-GYMK-1Y8F-30TB 1DC94:0KUE-MJE9-XWNP-H1M4 1YX95:BC21-TJCH-WL83-7TML 7NM96:VQGT-30AC-M4ED-A0BU 1UK97:J23K-0LYE-QLLN-2XNQ 7LH98:2K4C-D8C8-2UNY-XM1C 6KJ99:43MY-1YEG-1WWA-99LK
Output for rfc.property-hooks
3VK00:3WVN-WY6U-GN92-8L3M 2RV01:46B5-7L5D-UXJL-783W 8VJ02:FHGM-1E23-LATT-MU68 1AY03:3K7T-X6NP-EH5V-93L2 3UR04:HV07-C0VR-LRMR-M88W 1MU05:3T1X-PG67-TJ0D-7KBG 7DV06:NBB9-RXPJ-QP7Y-XN3Y 5CD07:XU7K-5T1Q-KNT0-VXER 6KH08:FYPX-XRFL-LGR0-DH3V 3WL09:BNG2-JW7R-KK0J-CX7K 1VF10:EAEU-C55T-YQ5K-M7HY 2RR11:1X3U-NBCE-HXPD-Q4EE 6MK12:14E5-W5XL-RR19-MX2M 2RC13:3B7K-QXXC-L57D-H8KC 7JU14:NYA9-EE5V-6KA2-6LN8 1KK15:VN4F-TDYA-0U5U-KXMW 1CC16:A1RC-RLQ4-WNQD-G7FJ 2AQ17:013J-7P08-KWR5-JHEN 3AV18:R92E-GDD9-F3XC-QMNM 6MF19:FEGJ-E0Q1-XLB4-0HMJ 9EB20:BRD3-CYGM-CGCQ-MMEX 1EG21:LN5W-12HU-39DK-0B6H 2XK22:84WP-6YTQ-7UE6-G3GL 2JJ23:RAV2-UGHN-WM4B-K32Q 8HJ24:1P3K-AUG1-GXKH-0M0P 9QD25:2H2R-YB43-CA5L-KHHG 6BL26:KLL1-109U-D4NK-AEM9 1TD27:4U6B-EDGD-UX7N-ERVB 4DC28:L1XC-A6DA-FGRN-4LGM 9RR29:UGWT-TQX9-B745-GPFA 7DT30:JKNH-CPVT-UP67-8UUY 1KC31:R8L7-C2UD-4R5H-GNR3 9RM32:L01R-1HVB-77T7-V0GN 5HC33:3TUG-H9DG-XC7M-2FC7 1RP34:QG4L-NFPC-B8CN-4FCU 5AK35:K8HG-T4BJ-NP02-8TVG 1CK36:X9H6-A9M0-X8K6-8K8R 9CH37:W17K-3J7R-BAMN-7WKQ 4YG38:LBYR-L86C-Y78J-JUFC 3NM39:UR8M-NRRJ-DM9B-8Y6Y 1WT40:MAQX-GLCE-4J2H-KPF9 5AN41:T40P-KEP1-CCMD-P3GL 2FY42:V66U-X0V5-JQ93-0X3R 5LT43:A8FN-M10A-MKB2-1RUH 7RP44:X26R-61K6-GJ60-AP29 4MK45:Q5M3-K0R6-W1XG-VXDC 9DY46:2Q94-YVU1-L61X-5V1B 9AH47:1VMB-BXUJ-3UMH-MWJ9 1VF48:0APC-HXJ9-EKAG-8X0G 5KT49:CJEK-FR37-UX7H-BN5A 8HW50:RT4L-NGC6-MQ5K-LNCL 9RM51:2CYR-NXAE-YN67-LV2K 2KC52:5A2P-JHJB-TEKV-VT09 7QR53:DGQ2-UVL5-DPEH-79AA 9UM54:U9B8-6B27-J8EE-FC4X 3TV55:CKG7-AA0V-M33R-QGE0 6UJ56:F37R-J7C4-P4HF-16WC 2RM57:1YHV-DMUC-BUJD-9MAP 7VJ58:5D16-X66H-16M9-CWT6 6ED59:C6DY-A57X-8XRQ-JDNU 1XU60:6DNL-GKW7-MYEC-LVU3 1MF61:CR80-Q6X2-N5C8-KBCQ 2TC62:8E4V-QAEU-HPJ4-K8C2 3HG63:GGLP-3262-JBQC-74B6 7LQ64:3KPN-K111-RRJ7-UDBN 8PH65:MUPB-0QEB-C323-FUYT 1NC66:JCUQ-N9PK-4FJT-001G 3LW67:K2DN-AG6W-DXQA-VT4T 9RK68:YBKR-EW0M-65HC-PUB8 3PQ69:2LMR-KH48-RR8P-43AK 8RB70:AYF3-K6TM-G6JD-1P9M 2TK71:FGQM-3H0U-CFF3-GCFH 6BE72:9R6Q-UULP-NFJV-TPNX 8GD73:NE9C-VRTP-3GBQ-Q9A2 6AH74:N30W-55AV-0K0B-GQR1 5UX75:793Q-GNXJ-VULN-L0JT 5UL76:VTDV-779J-M1P7-4BEW 8MA77:C1KH-7HA5-PJK9-DX8D 1LD78:FJD9-87EY-4XF6-599U 9YX79:7M91-RVJJ-VUNE-YG43 7VT80:7U0A-D87N-ARR2-60JM 2LN81:AMH9-40MV-2346-UYEH 4GK82:R0GL-09FL-1AJJ-QYTM 7NF83:AL5X-46PG-CDR3-2XA7 6ML84:B4W1-RADC-R0T0-2HUL 4YY85:VX14-F6G5-1L45-BMAQ 9KW86:Q7VE-U0PJ-GH9G-CAHF 4FG87:VW38-VFKL-4DHY-2A6L 2BQ88:MP6U-KRPN-HND9-PY1A 2QA89:3Y8F-PA7D-LHGH-YQ3Y 5BU90:R4H8-YKM0-JX5Q-MBQ6 4AF91:GBH8-83TC-9Q2H-BA5N 7HR92:M3MB-LQA1-Q0R0-EF5V 1MC93:AKBJ-NYUJ-N2XA-RJ61 5QF94:5EH2-WVW6-L621-YB5B 4EE95:KTTU-M6N0-VURR-TPQ5 9UF96:8BNK-1JD4-T6AT-E752 9KK97:K736-LAJN-4V2A-7Y95 5UD98:JL5B-LW8Y-U3RV-HNVF 4GG99:N0KE-UJ07-4MW2-UJFC

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:
32.58 ms | 410 KiB | 8 Q