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
9UA00:WLE0-UQEQ-27NR-JMXD 4XR01:CV6V-BLL9-QEB7-2UC0 1NV02:UFQP-VU1Q-X10Y-0D8K 9MU03:FMCN-LKAE-U43T-DGJ9 7HH04:3YHW-W8N6-90HQ-TLUE 6UF05:212P-BWC1-V4KP-AA8A 2CD06:36F4-CERG-3H5Q-CWFV 6EE07:LJ0G-C3J6-TEGD-QRLR 3VB08:J3K3-T33F-H9VA-YN94 4TR09:XGG8-KF95-W36W-AEVX 8NM10:8D8X-JGBR-PFUF-754F 5JJ11:X3AA-35TD-YXFP-FXHX 3QL12:9QPK-Y8U9-KML7-8EF1 5BX13:MEWV-00BG-WFX0-Y271 3FA14:WQQX-APC9-10N3-WAR3 4CX15:GBUL-UHFK-4WA3-B58J 2GC16:98BP-U0LA-4XA2-YY20 4CT17:E1KJ-B06F-B1EN-DTHV 7KN18:BNTM-G24B-J5BD-6F45 6XU19:YLVU-17BA-R2QP-XHDB 2AJ20:EK6A-66X8-D9NW-0DJL 1WL21:W8K3-17DW-YY9H-JJUY 1DK22:LBVC-53P9-NRGQ-77P6 4YN23:MGUY-VEX0-CMMG-0GAK 1CU24:QJ7R-98KB-9L90-F1QD 9LR25:E997-BP41-GUXQ-QJ7C 8BW26:LR4J-E5CL-TDUG-1YXG 9LJ27:B6AT-W4J6-3R6G-M8Y8 5FY28:946N-907N-GBK2-TYNG 4HQ29:G125-MH9X-GCAP-A6K9 7AQ30:B0DN-35AP-RWT8-P4FL 6CU31:XTJ6-64W5-P8RH-FTYW 8HF32:3F5B-XUPL-3GEL-K5V8 1MC33:5WA6-QYK8-B6FJ-PBG7 7GE34:4BWV-7QK3-B0W3-ET5Y 4GQ35:NRU4-0D67-3PW7-LQ6D 2ML36:V9VK-QBNY-M0RF-Q85C 4YJ37:Y3EY-4P0F-1VW3-ETP6 8JK38:YXKV-9UAT-TLJU-8XCD 5XJ39:BWVL-6WM8-CJHW-8LEU 6ER40:7KYU-TK0Y-52CF-WY2D 3UY41:9JYM-37XV-31A2-WQRB 6CP42:J2X9-MKV5-J81X-6VLP 6XY43:48WA-0M0K-NKW1-B1CY 6JG44:P3YG-C6P9-E8NX-EHQX 3FP45:QPU7-7W25-JUMW-UJEL 7HE46:1QQJ-1MFJ-7NTK-EDUN 6PE47:MWPG-5P9W-VLN4-1YP7 7CH48:0F00-9G3B-YQY5-83Q7 8XR49:1TPF-43HL-5M0X-G8PG 3UT50:37Y6-825R-0GKV-K433 2GV51:2NE9-DGX1-0KAN-MQWQ 7NB52:FQ75-EETB-AJ82-1LD7 6XM53:349F-3AC6-TR85-PT2R 6CJ54:W1K6-DRGB-M700-052B 8XA55:CQVK-V7YL-P9VE-3BH6 9TD56:8NMK-8AQM-D3MF-WBPF 8EV57:GJ9V-5Y0J-2188-ERY3 9WN58:PP8U-JVP5-1BJE-M7HT 8DN59:7QWW-7QD6-CXHR-UK4K 2FB60:2V5W-QH6C-Y0W5-T5WP 9EL61:Y9VL-FJXJ-AAVT-EB35 1TT62:Q30B-P7HD-QDA4-TJ1D 1KL63:2XDB-1CL1-Y1LG-Y6Y0 5MH64:T9AP-QM46-HDBY-BQWM 9TT65:9ML4-0X4D-JP75-YEDD 9EE66:2CBR-UTLW-8FQ6-XE1T 6JT67:W4PF-QAAC-F93W-CGAQ 9GQ68:JTBL-72GF-FPAM-56NC 8UV69:WXF8-VUN7-8MWJ-4FUM 9LK70:E1EF-X9TY-MFP3-L90J 5WJ71:RTN8-LUF2-06WQ-AHDA 1NE72:A0RD-L1BE-7UXJ-06KW 2KG73:D8T1-UG9L-4P0E-TDLL 5CW74:6QAG-F1H5-JRN5-NJNQ 8MJ75:8XMT-RPAL-EXFM-CEPK 9FA76:MJ1V-WHFK-52Q8-UQP1 6XB77:JN07-TJUH-T0UN-EP13 4MT78:URCH-CG6L-0DR4-62GC 7AP79:6AXJ-CHRE-20XC-B8YL 6JT80:179G-27VQ-EP3J-4QJ2 1PC81:3FX5-8B3A-A3RL-68AJ 2GD82:BV1C-J1VP-VGG6-8N3Y 4GW83:9QTC-CXCQ-B3LR-9M5T 7WU84:Q6RN-0XW3-BWME-Q0WR 2UA85:1DEQ-Q40F-XELR-W6N0 9BY86:437X-4QX8-KA1B-EART 7XV87:BMAT-L9FR-0A3T-J07A 9VK88:FBLY-6ACB-TPR3-1VRP 1YU89:383J-MLCL-96AW-E9AH 3QE90:D4MK-6EAP-PP77-3RAE 6PB91:9EFU-E9AX-F7WT-5R91 5XB92:FA28-YCX4-QY88-Q17X 2FC93:UN91-VTKE-1ML7-K3H2 8TE94:F8U6-7A94-97GR-DWLB 9JA95:4XDG-DR7L-3XHV-CQU2 1WT96:9DMP-YKRL-966A-CJ03 5MX97:5NWU-03VT-K683-7CVP 4EB98:KP4C-5YJ3-94E8-4973 4WM99:1QHD-CXGC-TE9K-MCTH
Output for git.master_jit
6WJ00:358X-B1P8-YBD8-YQGU 7BW01:GRP1-7FW4-YXDX-EMNH 3KH02:8ER8-E0AC-QAYT-AB0F 8DD03:A8V3-C5W1-KA9X-MVYN 9LT04:KL60-J3BA-7MF8-XGDM 5QP05:3XXL-3BGG-E1PX-88GM 6WA06:BDMK-4REE-5XBC-1883 8DU07:LMY1-Y2N9-J7V8-9RLP 3FA08:B2K0-YD22-7ABD-AJ9W 4JQ09:NA02-L6EX-TY7A-NJCH 8BW10:YQGE-12W2-V7YB-DY95 5TC11:RCKW-7FX4-4BNQ-TPFC 7NJ12:HNQU-PY2R-XNUD-BWBU 6RR13:A2ED-EXQE-755F-EEY9 1QV14:VE55-30AM-FRNB-12W0 2RU15:X29F-WPXY-37F0-RM2B 5HF16:E3W3-5X0X-EY7E-QWY9 4YP17:4P4T-7PVH-BUX0-H9Q9 3FH18:U006-3UC0-FUY5-TPGR 4UB19:HQ7D-QL91-0W3H-Q1PQ 6MA20:BW2K-0RXL-XTQ7-2G8C 5UD21:N821-BR7M-F37N-2645 1QM22:V263-3UGY-KRNB-4264 4AP23:3N89-RHGQ-BJPB-939Q 4GQ24:0ELM-9THA-RXWE-2MMN 7TA25:CN2B-8F3M-7R4D-6NQC 6FV26:PM3W-R25A-5AT4-FE6Q 7KK27:43MN-TEK5-WKHD-3WB2 3UL28:MU3K-31B8-2P79-KUGH 9CP29:KNUJ-1FKF-6UX6-9WT3 7KT30:015R-FBGT-1H63-R4NN 9EX31:W0L4-097V-T6N9-UYCM 7VY32:DFE5-D6YY-PB9E-FCH1 3KE33:1BDB-AN5P-7E8W-FJAP 4RG34:MB4J-KX50-38P5-D903 9BL35:TAWN-4LWQ-BFB8-YJTC 7HX36:PA36-B7YY-U589-H9AK 8TL37:Y7CM-9M9Y-B0EM-7KQF 7VE38:R17L-K1VV-V0Q2-6LJX 7AJ39:5XGC-DA3Q-GT1G-KVAA 2YM40:QRWE-MGYX-M38W-PL2R 2VK41:R3U4-D1Y8-9T1J-JWX8 1TU42:8GTB-Q68K-878W-M8L8 8HW43:JAB7-2TJ4-C8NC-M70A 4BR44:U0KX-V66F-VFYY-DAFP 8EH45:CTGN-AB3R-AWJ2-99XW 4CB46:1RPY-CE00-NL9J-UQJX 1FP47:YJTT-0E0L-7DEY-UKE6 9JK48:RUWC-L3AR-0M67-04FL 5MB49:4MB8-2L1F-6CQN-3RT3 9PE50:DAPE-H8VU-5XNJ-CB7C 2LB51:MLJW-RQW9-QKVE-PAQU 2HN52:4X90-AJNV-7A9B-R1KQ 7HU53:JB0N-L378-20MY-JQRD 1WA54:MGXK-1U36-4TD5-YFN8 3VG55:EMKB-NBUT-AABW-WRC4 2NV56:W4RE-0VRX-TQKX-1E05 3MU57:GAKL-AQF2-M281-9ULM 4VU58:XV8R-ELVG-D7CA-X7MG 4QH59:2F9X-22E9-81E1-HB6N 8YU60:12Q1-QLY7-18KC-4TEG 4ND61:GHH4-67N9-3NHT-VWBA 1MU62:DD5K-CU30-040N-7269 3DM63:KLB7-54L3-CVML-L5AT 3AN64:VXWJ-TNF1-ALTX-F3NL 3NH65:T8Q2-U6MP-A8D8-PKMF 9PG66:23JQ-8LN6-2MYN-5HKM 9BE67:5RE9-REQF-A49H-PYHL 6TR68:UBDQ-WJG6-5LCK-L5B8 6UG69:C61V-1E5K-1AT1-B2MU 8BH70:K84K-PHTX-YGEE-E24W 5EL71:V27M-L8MB-CJ2R-BQCF 8MF72:QHUJ-JLUF-RDW5-TWBX 7XA73:DC9A-Q2V4-YGK2-L02N 2JW74:XJHB-3HRR-A6WJ-B1WV 4DG75:YC5N-PN2P-VQ9Y-KY72 7BH76:2XFE-Q91P-HHFV-M977 8PC77:VUE1-2L4H-NLEJ-0E2G 7PM78:EDM6-2V8Y-HF8Y-L2WF 4VK79:JNDA-KP1F-HXGL-PA3W 8JD80:MWKN-XCU9-98L1-F2T0 9VE81:JM17-QXG3-C3D8-TT6Q 9UV82:JPNE-EUG9-HBU8-2392 9CP83:6AUL-N8NK-FNPC-HWPE 2TF84:H2BM-CVFA-T791-EMYC 9UL85:CYJY-Q9NR-GU1M-FLX9 2WM86:DYBT-C8FA-GBHJ-6YRR 3JE87:1T3L-KR8X-LJ52-VA6J 6XL88:QJ9Q-RR14-PBFE-1AU0 6VV89:HD0H-FLFW-76B1-GAKM 7VA90:6R8D-FBGC-NJ0K-EF32 3XC91:HW12-B9UX-D8G1-MQGN 7HV92:5KGG-4UK9-Q9N7-8378 6HC93:YK0F-06D5-YNTE-H4MK 4NQ94:B518-X6JF-W59T-7M0E 6PW95:JAHJ-0YBY-7GTQ-T6EV 7GW96:KY98-34RY-FRFF-2EP9 8QR97:19XV-54TT-ERTQ-526M 2UB98:JJ17-V9TW-8W2T-7CE6 5QU99:73CL-MU73-DJ3P-NRN3
Output for rfc.property-hooks
2UU00:TK62-2KHH-KKAV-GK5C 6RT01:VP56-ANL7-21VV-2E7F 9RV02:NLNV-EU3F-NQQQ-Y368 5MT03:1XN9-R3G5-2FKN-4UP4 9NX04:L8PY-DDMD-4A64-96E1 2EB05:J28Y-RNV0-NYVR-93RB 6ET06:9W81-LXWE-LNB3-KTU2 6UR07:E4WQ-J2JU-JABR-LUED 9EH08:H4YK-07TT-VF5T-NFJ3 4MN09:YUXQ-R424-0AY0-BGL2 4FA10:06NR-MK6X-0LDB-NFRU 8QC11:2Y1R-XNP4-V9NH-QJAA 4JN12:38E4-MW4Y-9T11-QB3L 5AU13:D2D9-YQ4V-CG26-X8Q7 5EF14:DEQA-U1DV-QJ7U-GM62 9AV15:QCQP-FANP-VWJU-7WDU 5XW16:FEPC-N67B-TV8F-4XWR 4BA17:WGQH-B3F3-V3BB-AGC7 8ML18:X8NL-B8EY-VBDW-HD1P 7DJ19:2WU5-LY55-Y45B-BGH1 5RB20:77PY-2DNU-CWKP-J40V 9EL21:KVN3-NNU9-FRH0-AUPD 2UJ22:7J8G-L1E5-NPVV-CC4D 7GG23:Q98P-319B-BY4K-L8N7 1PV24:Y3FG-916E-U4RR-FXH9 1UT25:RW37-P1VX-7WCP-LLTM 4GA26:RKNP-A472-X1PM-4C0V 8PC27:L5MP-XC59-FDF9-FUHG 9JR28:237J-8CJ0-8CCN-CQ0F 6VA29:A7K5-U1TD-5GD2-92Y3 9AA30:1E8V-TT92-22E7-YNT5 9MJ31:HN7M-MEDP-KYT0-QAQU 1QF32:1DGD-8YXC-BMNR-2CJN 5UY33:CH1F-ANP8-WYJY-8MMA 8WG34:D04M-VN13-TYJP-2VEE 1HV35:13VN-RB6R-9EAV-P15D 8NJ36:MNTA-8A0F-MNV8-UAP6 5CJ37:XH10-LQKM-FTV4-68MG 9EJ38:J07C-85YM-D9DB-T1B1 9WD39:MDER-36HV-JX24-WUWR 7DM40:BBVN-YF5Y-MQ4J-3TFJ 2TN41:EN8N-XB9A-12KH-0TMD 4PX42:UQW9-C5YE-APJ1-7QKJ 6FK43:38N5-VP07-0YCP-BMK5 5PM44:8Q25-6V32-T6H8-J558 2VW45:4GEB-11JJ-QJXE-8BD1 1AT46:AXE1-6LP9-TMPM-AQEQ 1NP47:4CEV-X1AX-1M6Q-GJB2 5QY48:J54A-UAFP-5KCA-1VP2 5FE49:RWYB-QBU1-TA0G-WFDQ 5KC50:MLEC-20FV-2YCP-VH4K 5QF51:QJPA-LWC5-V935-BP2N 5XQ52:3VR7-97A8-HDAG-D2FM 3GV53:553G-JU3Y-D0PX-6AFY 4MP54:X851-0DHR-WR9D-WA35 1XM55:RGWD-LG5M-JVDQ-V1XN 6XU56:QLA8-ACMG-YWHR-Y7DC 1AC57:HTYY-FKTK-BVCP-2CFJ 4FQ58:36M5-CL8D-C2BP-FHQL 7LB59:1FPF-BMG1-LLGV-8WUK 5YG60:GGW0-YUL0-563N-EVM5 1YK61:NQ6H-2JNB-D2R7-FFLX 6RL62:VFAD-PHXE-P368-4LLX 7TR63:7H8B-D4XJ-61LT-B3E8 9UQ64:RK1B-R8WA-XF56-VN1C 4UT65:JWAN-5FKY-5B99-TB5F 2AG66:YR1M-YH40-UXC8-YWY5 4DV67:WXCK-7Y5B-82GA-GGA8 8KR68:QKWR-DYMW-RJLK-H8DR 5PV69:KJ6D-0TJ7-28WH-YCKD 9HL70:LT32-D4YE-PDFT-D357 3BX71:8PU4-APH9-Q9L7-LRM8 9DR72:5UJ2-DBTG-BB05-T6K1 7VT73:RN39-M0CT-NPUB-99PY 1PG74:TQUU-304H-J9R6-VQRL 2WL75:6R9P-1M49-U93B-684V 8QC76:H9LW-PHBK-KWMN-B5DP 4RQ77:BR1C-G8D4-NWRE-L3MV 4RE78:NNP3-8HGD-12TT-AGF6 2HP79:ATPL-JE84-PFK6-M59F 7LC80:LBTP-1QU6-JX6V-6AV8 3PM81:8U0F-E3R6-4157-91NG 6JX82:ANK7-QVDT-J3Y7-9D4P 7VT83:55EC-3RJQ-HNHH-8K95 9QN84:4PQ9-V9TN-BNXX-M435 5UR85:YUHL-7NK3-QJL5-UKP2 9EY86:TLGJ-J4LU-2XDA-W8CW 6FM87:W2EV-AVF1-18H3-E579 1PN88:YPCU-KT5P-DDKC-267T 9EU89:KP66-U7ET-03MF-R6P1 9LN90:7BN3-1VF5-XVH5-D5AJ 2DM91:A8JT-U922-E5NA-W1U1 3AV92:HHM7-M275-1948-K5T2 3BA93:6XG5-KYJ8-U334-CNHJ 9PJ94:RM11-FEKH-36PQ-NJBH 7YB95:VWY4-R86P-JC5D-TAKR 9UB96:P5VE-XUK6-3HJK-9V0H 1HL97:V6L9-5APW-PHDL-KHWT 5CC98:XHPW-0X08-XXTE-G0JD 9YU99:JRLE-KFD9-9N7R-VE4H

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