diff --git a/README.md b/README.md index 6dcd464..ec2e1f3 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -a puzzle maker for ygopro. \ No newline at end of file +

PuzzleMaker

+a puzzle maker for ygopro.
+
+
+local test:
+need:vcredist_2008_x86_9.0.30729
+1.copy cdb to "test/db" +1.run "php_test.bat" (can modfity port)
+2.open "http://localhost/test.html"
diff --git a/images/pzone_l.png b/images/pzone_l.png new file mode 100644 index 0000000..c4dfa8a Binary files /dev/null and b/images/pzone_l.png differ diff --git a/images/pzone_r.png b/images/pzone_r.png new file mode 100644 index 0000000..b147af5 Binary files /dev/null and b/images/pzone_r.png differ diff --git a/index.html b/index.html index 8889720..3a99b0b 100644 --- a/index.html +++ b/index.html @@ -120,7 +120,7 @@

残局编辑器

- + diff --git a/javascripts/download.js b/javascripts/download.js index 02f0894..39a9f9c 100644 --- a/javascripts/download.js +++ b/javascripts/download.js @@ -9,14 +9,18 @@ function downloadURL(){ var player_LP = document.getElementById("Player_LP").value; var AI_LP = document.getElementById("AI_LP").value; var DUEL_PSEUDO_SHUFFLE = document.getElementById("check_shuffle").checked; + var use_simple_ai = document.getElementById("use_simple_ai").checked; + var non_puzzle = document.getElementById("non_puzzle").checked; var str = "--created by ygopro puzzle maker (web) \r\n"; str += "Debug.SetAIName(\"" + AI_name + "\")\r\n"; + var opstr = "DUEL_ATTACK_FIRST_TURN"; if(DUEL_PSEUDO_SHUFFLE){ - str += "Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI+DUEL_PSEUDO_SHUFFLE)\r\n"; + opstr += "+DUEL_PSEUDO_SHUFFLE"; } - else { - str += "Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI)\r\n"; + if(use_simple_ai) { + opstr += "+DUEL_SIMPLE_AI" } + str += "Debug.ReloadFieldBegin(" + opstr + ")\r\n"; str += "Debug.SetPlayerInfo(0," + player_LP + ",0,0)\r\n"; str += "Debug.SetPlayerInfo(1," + AI_LP + ",0,0)\r\n" ; var action = "";//包括addCounter、Equip、setTarget等等 @@ -30,6 +34,14 @@ function downloadURL(){ location = "LOCATION_SZONE"; place = 5; } + if(location == "LOCATION_PZONE_L"){ + location = "LOCATION_SZONE"; + place = 7; + } + if(location == "LOCATION_PZONE_R"){ + location = "LOCATION_SZONE"; + place = 6; + } var thumbs = fields[i].getElementsByClassName("thumb"); for(var j=0; j < thumbs.length; j++){ var index; @@ -46,9 +58,8 @@ function downloadURL(){ var be_continuous_target = card_info.be_continuous_target; var be_equip_target = card_info.be_equip_target; if(card_counters.length || continuous_target.length || equip_target.length || be_continuous_target.length || be_equip_target.length - ||card_info.attack != undefined ||card_info.base_attack != undefined ||card_info.defence != undefined ||card_info.base_defence != undefined - ||card_info.level != undefined - ){ + || card_info.attack != undefined || card_info.base_attack != undefined || card_info.defence != undefined || card_info.base_defence != undefined + || card_info.level != undefined || card_info.summon_type != ""){ str += card_info.cn + "="; } if(card_counters.length){ @@ -83,11 +94,14 @@ function downloadURL(){ if(card_info.level != undefined){ action += change_level(card_info.cn, card_info.level); } + if(card_info.summon_type != ""){ + action += set_summon_info(card_info.cn, card_info.summon_type, card_info.summon_location); + } if(card_info.disable_revivelimit){ - str += "Debug.AddCard(" + card_info.card_id + "," + player + "," + player + "," + location + "," + place + "," + card_info.position + "," + card_info.disable_revivelimit + ")\r\n"; + str += "Debug.AddCard(" + card_info.card_id + "," + player + "," + player + "," + location + "," + place + "," + card_info.position + "," + card_info.disable_revivelimit + ")--" + card_info.name + "\r\n"; } else { - str += "Debug.AddCard(" + card_info.card_id + "," + player + "," + player + "," + location + "," + place + "," + card_info.position + ")\r\n"; + str += "Debug.AddCard(" + card_info.card_id + "," + player + "," + player + "," + location + "," + place + "," + card_info.position + ")--" + card_info.name + "\r\n"; } } } @@ -95,13 +109,16 @@ function downloadURL(){ for(var i = 0; i < hintMsgs.length; i++){ str += "Debug.ShowHint(\"" + hintMsgs[i] + "\")\r\n" ; } - str += "aux.BeginPuzzle()\r\n"; + if(!non_puzzle){ + str += "aux.BeginPuzzle()\r\n"; + } str += action; //this.href = "http://my-card.in/singles/new.lua?name=Untitled&script=" + encodeURIComponent(str); document.getElementById("single_name").value = filename; document.getElementById("single_script").value = str; document.getElementById("download_form").submit(); } + function set_attack(cn, attack){ return set_value(cn, "EFFECT_SET_ATTACK", attack); } @@ -109,18 +126,22 @@ function set_base_attack(cn, base_attack){ return set_value(cn, "EFFECT_SET_BASE_ATTACK", base_attack); } function set_defence(cn, defence){ - return set_value(cn, "EFFECT_SET_DEFENCE", defence); + return set_value(cn, "EFFECT_SET_DEFENSE", defence); } function set_base_defence(cn, base_defence){ - return set_value(cn, "EFFECT_SET_BASE_DEFENCE", base_defence); + return set_value(cn, "EFFECT_SET_BASE_DEFENSE", base_defence); } function change_level(cn, level){ return set_value(cn, "EFFECT_CHANGE_LEVEL", level); } function set_value(cn, code, value){ - return "e=Effect.CreateEffect("+ cn +") \r\n" + + return "e=Effect.CreateEffect(" + cn + ") \r\n" + "e:SetType(EFFECT_TYPE_SINGLE) \r\n" + - "e:SetCode("+ code +") \r\n" + - "e:SetValue("+ value +") \r\n" + - ""+ cn +":RegisterEffect(e)\r\n"; -} \ No newline at end of file + "e:SetCode(" + code + ") \r\n" + + "e:SetValue(" + value + ") \r\n" + + "" + cn + ":RegisterEffect(e)\r\n"; +} +function set_summon_info(cn, summon_type, summon_location){ + return "Debug.PreSummon(" + cn + "," + summon_type + + ((summon_location == "") ? ")" : ("," + summon_location + ")")); +} diff --git a/javascripts/drag.js b/javascripts/drag.js index 459675f..9a252f1 100644 --- a/javascripts/drag.js +++ b/javascripts/drag.js @@ -9,9 +9,9 @@ function makeDraggable(thumb){ if(selectingEquip || selectingContinuous || removeContinuous){ return false; } - dragImage.src = thumb.src; - var x = thumb.src.lastIndexOf('.'); - var card_id = parseInt(thumb.src.substring(49,x)); + dragImage.src = thumb.src; + dragImage.alt = thumb.alt; + var card_id = parseInt(thumb.alt); var card_info = newCard_Info(card_id); $.data(dragImage, 'card_info', card_info); dragging = true; @@ -23,14 +23,23 @@ function makeDraggable(thumb){ } } thumb.onmouseover = function(){ - var x = thumb.src.lastIndexOf('.'); - var card_id = parseInt(thumb.src.substring(49,x)); - showDetail(card_id); + showDetail(parseInt(thumb.alt)); } + thumb.onerror =function(){ + noimage(this); + }; //与图片相邻的表格也可以拖动 parent.childNodes[1].childNodes[0].onmouseover = thumb.onmouseover; parent.childNodes[1].childNodes[0].onmousedown = thumb.onmousedown; } +/* +function getcardId(src){ + var x = src.lastIndexOf('.'); + var y = src.lastIndexOf('/'); + var card_id = parseInt(src.substring(y+1,x)); + //console.log(src.substring(y+1,x)); + return card_id; +}*/ function makeMoveable(thumb){ var parent = thumb.parentNode; var thumbImg = thumb.getElementsByTagName("img")[0]; @@ -46,6 +55,9 @@ function makeMoveable(thumb){ var be_equip_target = card_info.be_equip_target; var dragImage = document.getElementById('DragImage'); $.data(thumb, "degree", 0); + thumbImg.onerror =function(){ + noimage(this); + }; thumbImg.onmousedown = function(ev){ ev = ev || window.event; if(ev.button == 0 || ev.button == 1){ @@ -85,6 +97,7 @@ function makeMoveable(thumb){ else if(selectingEquip || selectingContinuous || removeContinuous) return false; dragImage.src = thumbImg.src; + dragImage.alt=thumbImg.alt; var degree = $.data(thumb, "degree"); Img.rotate(dragImage, degree, true); $.data(dragImage, 'card_info', card_info); @@ -135,6 +148,11 @@ function makeMoveable(thumb){ if(card_info.level != undefined){ str += "怪兽等级:" + card_info.level + "
"; } + if(card_info.summon_type != ""){ + str += "召唤方式:" + GetSummonTypeStr(card_info.summon_type) + "
"; + if(card_info.summon_location != "") + str += "召唤位置:" + GetLocationStr(card_info.summon_location) + "
"; + } if(card_counters.length){ for(var k = 0; k < card_counters.length; k++){ str += GetCounterStrByCode(card_counters[k].code) + " :" + card_counters[k].number + "
"; @@ -261,10 +279,14 @@ function makeMoveable(thumb){ } function newCard_Info(card_id){ var card_info = new Object(); + var data = datas[card_id]; card_info.card_id = card_id; - card_info.position = "POS_FACEUP_ATTACK"; + card_info.name = data.name + card_info.position = undefined; card_info.disable_revivelimit = false; card_info.cn = getCardName(); + card_info.summon_type = ""; + card_info.summon_location = ""; card_info.equip_target = []; card_info.be_equip_target = []; card_info.continuous_target = []; @@ -324,4 +346,17 @@ function GetCounterStrByCode(code){ if(counters[i].code == code) return counters[i].str; } -} \ No newline at end of file +} +function GetSummonTypeStr(summon_type){ + for(var i in summon_types){ + if(summon_types[i].type == summon_type) + return summon_types[i].str; + } +} +function GetLocationStr(loc){ + for(var i in locations){ + if(locations[i].location == loc) + return locations[i].str; + } +} + diff --git a/javascripts/main.js b/javascripts/main.js index b0e1950..86b3193 100644 --- a/javascripts/main.js +++ b/javascripts/main.js @@ -25,10 +25,10 @@ var HAND = 4; var GRAVE = 5; var EXTRA = 6; var REMOVED = 7; -var FZONE= 8; -var PZONE = 9; +var PZONE_LEFT= 8; +var PZONE_RIGHT = 9; -var LOCATION_STRING = ['mzone','szone','field','deck','hand','grave','extra','removed','fzone','pzone']; +var LOCATION_STRING = ['mzone','szone','field','deck','hand','grave','extra','removed','pzone_l','pzone_r']; var PLAYER_1 = [ {"top": 138, "left": 71}, //mzone {"top": 64, "left": 71}, //szone @@ -38,8 +38,8 @@ var PLAYER_1 = [ {"top": 138, "left": 12}, //grave {"top": -13, "left": 403}, //extra {"top": 138, "left": -45}, //removed -{"top": 64, "left": 12},//fzone -{"top": 64, "left": 403},//pzone +{"top": 64, "left": 12},//pzone_left +{"top": 64, "left": 403},//pzone_right ]; var PLAYER_0 = [ {"top": 265, "left": 71}, //mzone @@ -50,8 +50,8 @@ var PLAYER_0 = [ {"top": 265, "left": 403},//grave {"top": 416, "left": 12}, //extra {"top": 265, "left": 460},//removed -{"top": 339, "left": 403},//fzone -{"top": 339, "left": 12},//pzone +{"top": 339, "left": 403},//pzone_left +{"top": 339, "left": 12},//pzone2_right ]; var COORDINATE = [PLAYER_0,PLAYER_1]; @@ -61,6 +61,10 @@ var cards_url = "http://my-card.in/cards"; var card_img_url = "http://my-card.in/images/cards/ygocore/"; var card_img_thumb_url = "http://my-card.in/images/cards/ygocore/thumbnail/"; +var img_qm="images/qm.png"; +var img_close="images/close.png"; +var img_unkown="images/unknow.jpg"; + var datas = new Object(); function initField(){ @@ -76,8 +80,8 @@ function initField(){ addField(player,GRAVE,0); addField(player,EXTRA,0); addField(player,REMOVED,0); - addField(player,FZONE,0); - addField(player,PZONE,0); + addField(player,PZONE_LEFT,0); + addField(player,PZONE_RIGHT,0); } var fields = GetAllFields(); for(var i=0; i< fields.length;i++){ @@ -141,50 +145,18 @@ function initField(){ $('.box_main').show(function(){ $('.box_main').animate({width:'200px'},500); }); - $('#box_img').attr("src", "images/close.png"); + $('#box_img').attr("src", img_close); },function(){ $('.box_main').hide(function(){ $('.box_main').animate({width:'200px'},500); }); - $('#box_img').attr("src", "images/qm.png"); + $('#box_img').attr("src", img_qm); }); -//*test 黑羽 - - current_page = 1; - page_num = 0; - html = ""; - for( var i in default_result){ - - var card = default_result[i]; - datas[card._id]=card; - if(i%table_row==0){ - page_num ++; - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - } - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - if(((i+1)%table_row==0) || (i==default_result.length)){ - html = html+ ""; - } - } - var tables = document.getElementById("result"); - $(tables).html(html); - tablecloth(); - page_button.style.display = 'block'; - setPageLabel(current_page, page_num); - showPage(current_page); - var thumbs = tables.getElementsByClassName("thumbImg"); - for (var i=0; i< thumbs.length;i++){ - makeDraggable(thumbs[i]); - } -//*/ +/*test 黑羽 + addList(default_result); +*/ } + function search(){ var name = document.getElementById("keyword").value; var page_button = document.getElementById("page_button"); @@ -199,7 +171,7 @@ function search(){ setPageLabel(); page_button.style.display = 'none'; $("#result").html(html); - alert("未找到相关卡片"); + console.log("未找到相关卡片"); return false; } var cards_id = []; @@ -208,78 +180,61 @@ function search(){ } $.getJSON(cards_url + "?q=" + (JSON.stringify({_id: {$in: cards_id}})), function(cards) { for(var i in cards){ - var card = cards[i]; - var name = ''; - var desc = ''; - for(var j in result){ - if(result[j]._id == card._id){ - name = result[j].name; - desc = result[j].desc; - break; - } - } - var star = ""; - for(var i=0; i<(card.level&0xff); i++){ - star += "★"; - } - var data = { - "_id": card._id, - "name": name, - "type": getType(card), - "atk": card.atk, - "def": card.def, - "level": card.level, - "star": star, - "race": getRace(card), - "attribute": getAttribute(card), - "desc": desc - }; - datas[card._id]=data; - } - current_page = 1; - page_num = 0; - $.each(result, function(i, card){ - if(i%table_row==0){ - page_num ++; - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - } - html = html + ""; - html = html + ""; - html = html + ""; - html = html + ""; - if(((i+1)%table_row==0) || (i==result.length)){ - html = html+ ""; - } - }); - var tables = document.getElementById("result"); - $(tables).html(html); - tablecloth(); - page_button.style.display = 'block'; - setPageLabel(current_page, page_num); - showPage(current_page); - var thumbs = tables.getElementsByClassName("thumbImg"); - for (var i=0; i< thumbs.length;i++){ - makeDraggable(thumbs[i]); + datas[card._id]=getcarddata(result,cards[i]); } + addList(result); }); }); } + +function addList(result){ + current_page = 1; + page_num = 0; + var html=""; + $.each(result, function(i, card){ + //console.log(card.name); + if(i%table_row==0){ + page_num ++; + html = html + ""; + html = html + ""; + html = html + ""; + html = html + ""; + html = html + ""; + } + html = html + ""; + html = html + ""; + html = html + ""; + html = html + ""; + if(((i+1)%table_row==0) || (i==result.length)){ + html = html+ ""; + } + }); + var tables = document.getElementById("result"); + $(tables).html(html); + tablecloth(); + page_button.style.display = 'block'; + setPageLabel(current_page, page_num); + showPage(current_page); + var thumbs = tables.getElementsByClassName("thumbImg"); + for (var i=0; i< thumbs.length;i++){ + makeDraggable(thumbs[i]); + } +} + function prePage(){ //上一页 if(current_page == 1) return false; current_page--; setPageLabel(current_page, page_num); showPage(current_page); } + function nextPage(){//下一页 if(current_page == page_num) return false; current_page++; setPageLabel(current_page, page_num); showPage(current_page) } + function showPage(current_page){//显示current页 var tables = document.getElementsByTagName('table'); for(var i=0; i= 48 && key <= 57 || key == 8) { @@ -576,6 +624,7 @@ function checkNums() { return false; } } + function checkLetter() { var key = window.event.keyCode; if (key >= 65 && key <= 97) { @@ -589,9 +638,11 @@ function getViewSize(){ return {w: window['innerWidth'] || document.documentElement.clientWidth, h: window['innerHeight'] || document.documentElement.clientHeight} } + function getFullSize(){ return {w: window.screen.width, h: window.screen.height} } + function del(array,n){ var result = []; for(var i in array){ @@ -600,6 +651,7 @@ function del(array,n){ } return result; } + function delElement(array,v){ var result = []; for(var i in array){ @@ -608,6 +660,12 @@ function delElement(array,v){ } return result; } + +function noimage(eImg){ + eImg.src=img_unkown; +} + + document.onmousemove = mouseMove; document.onmousedown = mouseDown; document.onmouseup = mouseUp; diff --git a/javascripts/popmenu.js b/javascripts/popmenu.js index bb4f1e2..fd2d0ab 100644 --- a/javascripts/popmenu.js +++ b/javascripts/popmenu.js @@ -1,5 +1,7 @@ var menu_index = 0; var menu_position = 1 << menu_index++; +var menu_pos_faceup = 1 << menu_index++; +var menu_pos_facedown = 1 << menu_index++; var menu_pos_faceup_attack = 1 << menu_index++; var menu_pos_faceup_defence = 1 << menu_index++; var menu_pos_facedown_defence = 1 << menu_index++; @@ -19,6 +21,7 @@ var menu_change_defence = 1 << menu_index++; var menu_set_defence = 1 << menu_index++; var menu_set_base_defence = 1 << menu_index++; var menu_change_level = 1 << menu_index++; +var menu_set_summon_info = 1 << menu_index++; var menu_show_list = 1 << menu_index++; var PopMenu = function createPopMenu(){ @@ -77,7 +80,35 @@ var PopMenu = function createPopMenu(){ } //各菜单项的响应事件 - aLi[1].onmousedown = function(event){//表侧攻击表示 + aLi[1].onmousedown = function(event){//表侧表示 + var tmplItem = $(thumb).tmplItem().data; + var card_id = tmplItem.card_info.card_id; + thumbImg.src = card_img_thumb_url + card_id + ".jpg"; + tmplItem.card_info.position = "POS_FACEUP"; + if(isIE && !IE10){ + thumb.style.top = tmplItem.top + "px"; + thumb.style.left = tmplItem.left + "px"; + } + else { + thumb.style.left = tmplItem.left + "px"; + } + Img.rotate(thumb, 0); + } + aLi[2].onmousedown = function(event){//里侧表示 + var tmplItem = $(thumb).tmplItem().data; + var card_id = tmplItem.card_info.card_id; + thumbImg.src = "images/unknow.jpg"; + tmplItem.card_info.position = "POS_FACEDOWN"; + if(isIE && !IE10){ + thumb.style.top = tmplItem.top + "px"; + thumb.style.left = tmplItem.left + "px"; + } + else { + thumb.style.left = tmplItem.left + "px"; + } + Img.rotate(thumb, 0); + } + aLi[3].onmousedown = function(event){//表侧攻击表示 var tmplItem = $(thumb).tmplItem().data; var card_id = tmplItem.card_info.card_id; thumbImg.src = card_img_thumb_url + card_id + ".jpg"; @@ -91,11 +122,11 @@ var PopMenu = function createPopMenu(){ } Img.rotate(thumb, 0); } - aLi[2].onmousedown = function(event){//表侧守备表示 + aLi[4].onmousedown = function(event){//表侧守备表示 var tmplItem = $(thumb).tmplItem().data; var card_id = tmplItem.card_info.card_id; thumbImg.src = card_img_thumb_url + card_id + ".jpg"; - tmplItem.card_info.position = "POS_FACEUP_DEFENCE"; + tmplItem.card_info.position = "POS_FACEUP_DEFENSE"; if(isIE && !IE10){ thumb.style.top = 13 + "px"; thumb.style.left = 0 + "px"; @@ -105,11 +136,11 @@ var PopMenu = function createPopMenu(){ } Img.rotate(thumb, -90); } - aLi[3].onmousedown = function(event){//里侧守备表示 + aLi[5].onmousedown = function(event){//里侧守备表示 var tmplItem = $(thumb).tmplItem().data; var card_id = tmplItem.card_info.card_id; thumbImg.src = "images/unknow.jpg"; - tmplItem.card_info.position = "POS_FACEDOWN_DEFENCE"; + tmplItem.card_info.position = "POS_FACEDOWN_DEFENSE"; if(isIE && !IE10){ thumb.style.top = 13 + "px"; thumb.style.left = 0 + "px"; @@ -119,7 +150,7 @@ var PopMenu = function createPopMenu(){ } Img.rotate(thumb, -90); } - aLi[4].onmousedown = function(event){//里侧攻击表示 + aLi[6].onmousedown = function(event){//里侧攻击表示 var tmplItem = $(thumb).tmplItem().data; var card_id = tmplItem.card_info.card_id; thumbImg.src = "images/unknow.jpg"; @@ -133,21 +164,21 @@ var PopMenu = function createPopMenu(){ } Img.rotate(thumb, 0); } - aLi[5].onmousedown = function(event){//不解除苏生限制 + aLi[7].onmousedown = function(event){//不解除苏生限制 var tmplItem = $(thumb).tmplItem().data; tmplItem.card_info.disable_revivelimit = false; } - aLi[6].onmousedown = function(event){//解除苏生限制 + aLi[8].onmousedown = function(event){//解除苏生限制 var tmplItem = $(thumb).tmplItem().data; tmplItem.card_info.disable_revivelimit = true; } - aLi[7].onmousedown = function(event){//添加永续效果对象 + aLi[9].onmousedown = function(event){//添加永续效果对象 thumb_continuous = thumb; var fields = GetAllFields(); for(var i=0; i< fields.length;i++){ var tmplItem = $(fields[i]).tmplItem().data; var location = tmplItem.location; - if(location == 'location_mzone' || location == 'location_szone' || location == 'location_field'){ + if(location == 'location_mzone' || location == 'location_szone' || location == 'location_field' || location == 'location_pzone_r' || location == 'location_pzone_l'){ var thumbs = fields[i].getElementsByClassName("thumb"); if(thumbs.length != 0){ var temp = thumbs[thumbs.length-1]; @@ -164,7 +195,7 @@ var PopMenu = function createPopMenu(){ alert("场上不存在合适的永续效果对象!"); } } - aLi[8].onmousedown = function(event){//删除永续效果对象 + aLi[10].onmousedown = function(event){//删除永续效果对象 thumb_continuous = thumb; var card_info = $(thumb).tmplItem().data.card_info; var thumbs = card_info.continuous_target; @@ -179,7 +210,7 @@ var PopMenu = function createPopMenu(){ $(document).tooltip({track: true}); } } - aLi[9].onmousedown = function(event){//设置装备对象 + aLi[11].onmousedown = function(event){//设置装备对象 thumb_equip = thumb; var fields = GetAllFields(); for(var i=0; i< fields.length;i++){ @@ -205,13 +236,13 @@ var PopMenu = function createPopMenu(){ alert("场上不存在合适的装备对象!"); } } - aLi[10].onmousedown = function(event){//删除装备对象 + aLi[12].onmousedown = function(event){//删除装备对象 var card_info = $(thumb).tmplItem().data.card_info; var equip_target = card_info.equip_target[0]; removeEquipRelation(thumb, equip_target); removeBeEquipRelation(equip_target, thumb); } - aLi[11].onmousedown = function(event){//放置指示物 + aLi[13].onmousedown = function(event){//放置指示物 var tmplItem = $(thumb).tmplItem().data; var card_counters = tmplItem.card_info.card_counters; var counterSelectors = $('#counterSelectors'); @@ -227,42 +258,51 @@ var PopMenu = function createPopMenu(){ $('#add_counter_dialog').dialog('open'); return false; } - aLi[14].onmousedown = function(event){//设置攻击力 + aLi[16].onmousedown = function(event){//设置攻击力 var card_info = $(thumb).tmplItem().data.card_info; var attack = prompt("输入攻击力!", card_info.attack || 0); if(attack != undefined && !isNaN(attack)){ card_info.attack = attack; } } - aLi[15].onmousedown = function(event){//设置原本攻击力 + aLi[17].onmousedown = function(event){//设置原本攻击力 var card_info = $(thumb).tmplItem().data.card_info; var base_attack = prompt("输入原本攻击力!", card_info.base_attack || 0); if(base_attack != undefined && !isNaN(base_attack)){ card_info.base_attack = base_attack; } } - aLi[17].onmousedown = function(event){//设置防御力 + aLi[19].onmousedown = function(event){//设置防御力 var card_info = $(thumb).tmplItem().data.card_info; var defence = prompt("输入防御力!", card_info.defence || 0); if(defence != undefined && !isNaN(defence)){ card_info.defence = defence; } } - aLi[18].onmousedown = function(event){//设置原本防御力 + aLi[20].onmousedown = function(event){//设置原本防御力 var card_info = $(thumb).tmplItem().data.card_info; var base_defence = prompt("输入原本防御力!", card_info.base_defence || 0); if(base_defence != undefined && !isNaN(base_defence)){ card_info.base_defence = base_defence; } } - aLi[19].onmousedown = function(event){//设置等级 + aLi[21].onmousedown = function(event){//设置等级 var card_info = $(thumb).tmplItem().data.card_info; var level = prompt("输入等级!", card_info.level || 0); if(level != undefined && !isNaN(level)){ card_info.level = level; } } - aLi[20].onmousedown = function(event){//调整顺序 + aLi[22].onmousedown = function(event){//设置召唤信息 + var tmplItem = $(thumb).tmplItem().data; + var summon_type = tmplItem.card_info.summon_type; + var summon_location = tmplItem.card_info.summon_location; + $('#summon_info').empty(); + setSummonInfo(summon_type, summon_location); + $('#set_summon_info_dialog').dialog('open'); + return false; + } + aLi[23].onmousedown = function(event){//调整顺序 var field = thumb.parentNode; var sortable = $('#sortable'); sortable.empty(); @@ -290,7 +330,7 @@ var PopMenu = function createPopMenu(){ if(location == 'location_mzone'){ if(!card_info.IsXYZmaterial){ menuItems = menu_position + menu_pos_faceup_attack + menu_pos_faceup_defence + menu_pos_facedown_defence + menu_pos_facedown_attack - + menu_add_target + menu_counter + menu_change_value + menu_change_attack + menu_set_attack + menu_set_base_attack + menu_change_defence + menu_set_defence + menu_set_base_defence + menu_change_level; + + menu_add_target + menu_counter + menu_change_value + menu_change_attack + menu_set_attack + menu_set_base_attack + menu_change_defence + menu_set_defence + menu_set_base_defence + menu_change_level + menu_set_summon_info; } if(card_info.disable_revivelimit){ menuItems += menu_enable_revivelimit; @@ -304,7 +344,7 @@ var PopMenu = function createPopMenu(){ menuItems += menu_show_list; } else if(location == 'location_szone'){ - menuItems = menu_position + menu_pos_faceup_attack + menu_pos_facedown_attack + menu_add_target + menu_add_equip + menu_counter; + menuItems = menu_position + menu_pos_faceup + menu_pos_facedown + menu_add_target + menu_add_equip + menu_counter; if(card_info.disable_revivelimit){ menuItems += menu_enable_revivelimit; } @@ -318,8 +358,20 @@ var PopMenu = function createPopMenu(){ menuItems += menu_remove_equip; } } + else if(location == "location_pzone_r"|| location == "location_pzone_l"){ + menuItems = menu_add_target + menu_counter; + if(card_info.disable_revivelimit){ + menuItems += menu_enable_revivelimit; + } + else { + menuItems += menu_disable_revivelimit; + } + if(card_info.continuous_target.length){ + menuItems += menu_remove_target; + } + } else if(location == 'location_field'){ - menuItems += menu_position + menu_pos_faceup_attack + menu_pos_facedown_attack + menu_add_target + menu_counter; + menuItems += menu_position + menu_pos_faceup + menu_pos_facedown + menu_add_target + menu_counter; if(card_info.continuous_target.length){ menuItems += menu_remove_target; } @@ -340,9 +392,19 @@ var PopMenu = function createPopMenu(){ menuItems += menu_show_list; } else if(location == 'location_extra'){ + menuItems += menu_position + menu_pos_faceup + menu_pos_facedown; + if(card_info.position == "POS_FACEUP" || card_info.position == "POS_FACEUP_ATTACK" || card_info.position == "POS_FACEUP_DEFENSE"){ + if(card_info.disable_revivelimit){ + menuItems += menu_enable_revivelimit; + } + else { + menuItems += menu_disable_revivelimit; + } + } menuItems += menu_show_list; } else if(location == 'location_removed'){ + menuItems += menu_position + menu_pos_faceup + menu_pos_facedown; if(card_info.disable_revivelimit){ menuItems += menu_enable_revivelimit; } @@ -353,20 +415,30 @@ var PopMenu = function createPopMenu(){ } if(menuItems == 0) return false; setMenu(menuItems); - for(var i=1;i<5;i++){ + for(var i=1;i<7;i++){ aLi[i].className = aLi[i].className.replace(/\s?check/,""); } - if(card_info.position == "POS_FACEUP_ATTACK"){ + if(card_info.position == "POS_FACEUP"){ aLi[1].className += " check"; } - else if(card_info.position == "POS_FACEUP_DEFENCE"){ + else if(card_info.position == "POS_FACEDOWN"){ aLi[2].className += " check"; } - else if(card_info.position == "POS_FACEDOWN_DEFENCE"){ + else if(card_info.position == "POS_FACEUP_ATTACK"){ aLi[3].className += " check"; + aLi[1].className += " check"; } - else if(card_info.position == "POS_FACEDOWN_ATTACK"){ + else if(card_info.position == "POS_FACEUP_DEFENSE"){ aLi[4].className += " check"; + aLi[1].className += " check"; + } + else if(card_info.position == "POS_FACEDOWN_DEFENSE"){ + aLi[5].className += " check"; + aLi[2].className += " check"; + } + else if(card_info.position == "POS_FACEDOWN_ATTACK"){ + aLi[6].className += " check"; + aLi[2].className += " check"; } popMenu.style.display = "block"; @@ -428,6 +500,24 @@ var PopMenu = function createPopMenu(){ } } }); + $("#set_summon_info_dialog").dialog({ + autoOpen: false, + resizable: false, + hide: "puff", + modal: true, + width: 450, + buttons: { + "确定": function() { + addSummonInfo(this, thumb); + $( this ).dialog({hide: "clip"}); + $( this ).dialog( "close" ); + $( this ).dialog({hide: "puff"}); + }, + "取消": function() { + $( this ).dialog( "close" ); + } + } + }); $("#show_list_dialog").dialog({ autoOpen: false, resizable: false, @@ -480,6 +570,21 @@ function addCounter(dialog, thumb){//根据dialog的内容更新thumb card_info.card_counters.push({code : code , number : number}); } } +function setSummonInfo(summon_type, summon_location){ + $("#SetSummonInfo-tmpl").tmpl({ + summmon_types: summon_types, + _type: summon_type || "", + _location: summon_location || "" + }).appendTo($('#summon_info')); +} +function addSummonInfo(dialog, thumb){ + var card_info = $(thumb).tmplItem().data.card_info; + var SetSummonInfo = dialog.getElementsByClassName("SetSummonInfo")[0]; + var summon_type = SetSummonInfo.getElementsByTagName("select")[0].value; + var summon_location = SetSummonInfo.getElementsByTagName("select")[1].value; + card_info.summon_type = summon_type; + card_info.summon_location = summon_location; +} function sort(dialog, field){//根据dialog的顺序更新field var thumbs = dialog.getElementsByClassName("thumbImg"); var card_list = []; diff --git a/javascripts/upload.js b/javascripts/upload.js index 0b552e0..d37ef7f 100644 --- a/javascripts/upload.js +++ b/javascripts/upload.js @@ -1,15 +1,13 @@ var patterns = []; -patterns[0] = new RegExp("\\s*--.*"); patterns[1] = new RegExp("\\s*Debug\\.SetAIName\\(\\s*\".*\"\\s*\\).*"); -patterns[2] = new RegExp("\\s*Debug\\.ReloadFieldBegin\\(DUEL_ATTACK_FIRST_TURN(\\+DUEL_SIMPLE_AI)?\\).*"); +patterns[2] = new RegExp("\\s*Debug\\.ReloadFieldBegin\\(.*\\).*"); patterns[3] = new RegExp("\\s*Debug\\.SetPlayerInfo\\(\\s*[01]\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*\\).*"); -patterns[4] = new RegExp("\\s*(\\w+\\s*=\\s*)?Debug\\.AddCard\\(\\d+,[01],[01],\\w+,\\d,\\w+(,\\w+)?\\).*"); +patterns[4] = new RegExp("\\s*(\\w+\\s*=\\s*)?Debug\\.AddCard\\(\\s*\\d+\\s*,\\s*[01]\\s*,\\s*[01]\\s*,\\s*\\w+\\s*,\\s*\\d\\s*,\\s*\\w+(\\s*,\\s*\\w+)?\\s*\\).*"); patterns[5] = new RegExp("\\s*Debug\\.ReloadFieldEnd\\(\\s*\\).*"); patterns[6] = new RegExp("\\s*Debug\\.ShowHint\\(\\s*\".*\"\\s*\\).*"); patterns[7] = new RegExp("\\s*aux\\.BeginPuzzle\\(\\s*\\).*"); - - +patterns[8] = new RegExp("\\s*--.*"); upload = function(files) { @@ -48,7 +46,8 @@ upload = function(files) { } if (files.length) { var file = files[0]; - filename = file.name.split(".")[0]; + filename = file.name.slice(0,-4); + $('#header').children('h1').text(filename); var reader = new FileReader(); reader.onload = function() { readPuzzle(this.result) @@ -60,18 +59,20 @@ function readPuzzle(result){ var results = result.split('\n'); var cards = []; var cards_id = []; + var non_puzzle = true; + var use_simple_ai = false; + var psudo_shuffle = false; for(var i =0; i < results.length; i++){ var tempString = results[i]; var type = getRegType(tempString); // alert(tempString + '\n' + "type: " + type); switch(type){ - case 0: - break; case 1://SetAIName AI_name = tempString.split("\"")[1]; break; case 2://ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI) - //Use_Simple_AI = tempString.contains("DUEL_SIMPLE_AI"); + use_simple_ai = tempString.indexOf("DUEL_SIMPLE_AI") >= 0; + psudo_shuffle = tempString.indexOf("DUEL_PSEUDO_SHUFFLE") >= 0; break; case 3://SetPlayerInfo(0,8000,0,0) var params = getFuncParams(tempString); @@ -89,7 +90,7 @@ function readPuzzle(result){ var location = params[3]; var place = parseInt(params[4]); var position = params[5]; - var disable_revivelimit = params[6]; + var disable_revivelimit = (params[6] == "true") ? true : false; if(location == "LOCATION_DECK"||location =="LOCATION_GRAVE"||location =="LOCATION_REMOVED" ||location =="LOCATION_EXTRA"||location =="LOCATION_HAND"){ place = 0; @@ -98,11 +99,16 @@ function readPuzzle(result){ location = "LOCATION_FIELD"; place = 0; } - if(position == "POS_FACEDOWN"){ - position = "POS_FACEDOWN_ATTACK"; + if(location == "LOCATION_SZONE" && place == 7){ + location = "LOCATION_PZONE_L"; + place = 0; + } + if(location == "LOCATION_SZONE" && place == 6){ + location = "LOCATION_PZONE_R"; + place = 0; } - if(position == "POS_FACEUP"){ - position = "POS_FACEUP_ATTACK"; + if(position == 0){ + position = "POS_FACEUP" } cards.push({"card_id":card_id, "owner":owner, "controler":controler, "location":location, "place":place, "position":position, "disable_revivelimit":disable_revivelimit}); cards_id.push(card_id); @@ -115,23 +121,28 @@ function readPuzzle(result){ hintMsgs.push(strings[1]); break; case 7://BeginPuzzle - // PuzzleMaker.BeginPuzzle = true; + non_puzzle = false; + break; + case 8: break; } } + document.getElementById("check_shuffle").checked = psudo_shuffle; + document.getElementById("use_simple_ai").checked = use_simple_ai; + document.getElementById("non_puzzle").checked = non_puzzle; loadCards(cards_id,cards); } function getRegType(String){ - for(var i = 0; i < patterns.length; i++){ + for(var i = 1; i < patterns.length; i++){ if(String.match(patterns[i])) return i; } return -1; } function getFuncParams(str){ - var params = str.split("\("); - params = params[1].split("\)"); - params = params[0].split(","); + var params = str.split(/\(\s*/); + params = params[1].split(/\s*\)/); + params = params[0].split(/\s*,\s*/); return params; } function SetPlayerInfo(player, lp, firstTurnDraw, everyTurnDraw){ @@ -146,39 +157,14 @@ function SetPlayerInfo(player, lp, firstTurnDraw, everyTurnDraw){ // AIEveryTurnDraw = everyTurnDraw; } } + function loadCards(cards_id,cards){ var locale_url = "http://my-card.in/cards_" + locale; var url = locale_url + '?q=' + JSON.stringify({_id: {$in: cards_id}}); $.getJSON(url,function(result){ $.getJSON(cards_url + "?q=" + (JSON.stringify({_id: {$in: cards_id}})), function(_cards) { for(var i in _cards){ - var card = _cards[i]; - var name = ''; - var desc = ''; - for(var j in result){ - if(result[j]._id == card._id){ - name = result[j].name; - desc = result[j].desc; - break; - } - } - var star = ""; - for(var i=0; i<(card.level&0xff); i++){ - star += "★"; - } - var data = { - "_id": card._id, - "name": name, - "type": getType(card), - "atk": card.atk, - "def": card.def, - "level": card.level, - "star": star, - "race": getRace(card), - "attribute": getAttribute(card), - "desc": desc - }; - datas[card._id]=data; + datas[card._id]=getcarddata(result,_cards[i]); } for(var i in cards){ loadCard(cards[i]); @@ -188,10 +174,14 @@ function loadCards(cards_id,cards){ } function loadCard(card){ var card_info = new Object(); + var data = datas[card.card_id]; card_info.card_id = card.card_id; + card_info.name = data.name card_info.position = card.position; card_info.disable_revivelimit = card.disable_revivelimit; card_info.cn = getCardName(); + card_info.summon_type = ""; + card_info.summon_location = ""; card_info.equip_target = []; card_info.be_equip_target = []; card_info.continuous_target = []; diff --git a/javascripts/ygo.js b/javascripts/ygo.js index 7ba478a..9869685 100644 --- a/javascripts/ygo.js +++ b/javascripts/ygo.js @@ -1,16 +1,39 @@ var types_zh = [ '怪兽','魔法','陷阱',null,'通常','效果','融合','仪式','陷阱怪兽','灵魂','同盟','二重','调整','同调', null,'衍生物', - '速攻','永续','装备','场地','反击','翻转','卡通','超量' + '速攻','永续','装备','场地','反击','反转','卡通','超量','灵摆' ]; var attributes_zh = [ '地','水','炎','风','光','暗','神' ]; var races_zh = [ '战士族','魔法师族','天使族','恶魔族','不死族','机械族','水族','炎族','岩石族','鸟兽族','植物族','昆虫族','雷族', - '龙族','兽族','兽战士族','恐龙族','鱼族','海龙族','爬虫族','念动力族','幻神兽族','创造神族' + '龙族','兽族','兽战士族','恐龙族','鱼族','海龙族','爬虫类族','念动力族','幻神兽族','创造神族','幻龙族' ]; +var summon_types = [ +{"type" : "", "str" : ""}, +{"type" : "SUMMON_TYPE_SPECIAL", "str" : "特殊召唤"}, +{"type" : "SUMMON_TYPE_FUSION", "str" : "融合召唤"}, +{"type" : "SUMMON_TYPE_RITUAL", "str" : "仪式召唤"}, +{"type" : "SUMMON_TYPE_SYNCHRO", "str" : "同调召唤"}, +{"type" : "SUMMON_TYPE_XYZ", "str" : "超量召唤"}, +{"type" : "SUMMON_TYPE_PENDULUM", "str" : "灵摆召唤"}, +{"type" : "SUMMON_TYPE_NORMAL", "str" : "通常召唤"}, +{"type" : "SUMMON_TYPE_ADVANCE", "str" : "上级召唤"}, +{"type" : "SUMMON_TYPE_DUAL", "str" : "再度召唤"}, +{"type" : "SUMMON_TYPE_FLIP", "str" : "反转召唤"}, +]; +var locations = [ +{"location" : "", "str": ""}, +{"location" : "LOCATION_DECK", "str": "卡组"}, +{"location" : "LOCATION_HAND", "str": "手卡"}, +{"location" : "LOCATION_GRAVE", "str": "墓地"}, +{"location" : "LOCATION_REMOVED", "str": "除外"}, +{"location" : "LOCATION_EXTRA", "str": "额外"}, +{"location" : "LOCATION_SZONE", "str": "魔陷区"}, +{"location" : "LOCATION_MZONE", "str": "怪兽区"}, +]; var counters = [ {"code" : "0x3001" ,"str" : "魔力指示物"}, {"code" : "0x2" , "str" : "楔指示物"}, @@ -19,7 +42,7 @@ var counters = [ {"code" : "0x5" , "str" : "光指示物"}, {"code" : "0x6" , "str" : "宝玉指示物"}, {"code" : "0x7" , "str" : "指示物(剑斗兽之槛)"}, -{"code" : "0x8" , "str" : "D指示物"}, +{"code" : "0x8" , "str" : "变形斗士指示物"}, {"code" : "0x9" , "str" : "毒指示物"}, {"code" : "0xa" , "str" : "次世代指示物"}, {"code" : "0x300b" ,"str" : "指示物(古代的机械城)"}, @@ -55,11 +78,28 @@ var counters = [ {"code" : "0x29" , "str" : "指示物(气球蜥蜴)"}, {"code" : "0x2a" , "str" : "指示物(魔法防护器)"}, {"code" : "0x302b" ,"str" : "命运指示物"}, -{"code" : "0x2c" , "str" : "遵命指示物"} +{"code" : "0x2c" , "str" : "遵命指示物"}, +{"code" : "0x2d" , "str" : "指示物(踢火)"}, +{"code" : "0x2e" , "str" : "鲨指示物"}, +{"code" : "0x2f" , "str" : "南瓜指示物"}, +{"code" : "0x30" , "str" : "毅飞冲天指示物"}, +{"code" : "0x31" , "str" : "希望剑指示物"}, +{"code" : "0x32" , "str" : "气球指示物"}, +{"code" : "0x33" , "str" : "妖仙指示物"}, +{"code" : "0x34" , "str" : "指示物(BOX)"}, +{"code" : "0x35" , "str" : "音响指示物"}, +{"code" : "0x3036" ,"str" : "娱乐法师指示物"}, +{"code" : "0x37" , "str" : "大怪兽指示物"}, +{"code" : "0x90" , "str" : "少女指示物"}, +{"code" : "0x91" , "str" : "速度指示物"}, +{"code" : "0x92" , "str" : "血指示物"}, +{"code" : "0x93" , "str" : "幻魔指示物"}, +{"code" : "0x94" , "str" : "地缚神指示物"}, +{"code" : "0x95" , "str" : "纹章指示物"}, + ]; -function getType(card){ +function getType(type){ var result=''; - var type = card.type; for(var i in types_zh){ if(type & (0x1< +

浏览器太旧了亲~. 请 升级/更换您的浏览器 或者 激活 Google Chrome 浏览器内嵌框架.

+ + + + + + + +残局编辑器 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + +
+
+ + +
+ + + + +
+
    +
  • 更改表示形式 +
      +
    • 表侧表示
    • +
    • 里侧表示
    • +
    • 表侧攻击表示
    • +
    • 表侧守备表示
    • +
    • 里侧守备表示
    • +
    • 里侧攻击表示
    • +
    +
  • +
  • 不解除苏生限制
  • +
  • 解除苏生限制
  • +
  • 添加永续效果对象
  • +
  • 删除永续效果对象
  • +
  • 设置装备对象
  • +
  • 删除装备对象
  • +
  • 放置指示物
  • +
  • 更改数值 +
      +
    • 更改攻击力 +
        +
      • 设置攻击力
      • +
      • 设置原本攻击力
      • +
      +
    • +
    • 更改防御力 +
        +
      • 设置防御力
      • +
      • 设置原本防御力
      • +
      +
    • +
    • 设置怪兽等级
    • +
    +
  • +
  • 设置召唤信息
  • +
  • 调整顺序
  • +
+
+
+
    +
    + + +
    +
    + +
    + +
    +
    +
    + + + + + + +
    +

    + + + +

    +
    +

    + 勾选此项则游戏中的洗牌不改变原本顺序 +
    + 勾选此项则可以进行下个回合 +
    + 使用残局AI +
    + +
    + + +
    + + +
    + +
    + +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 0000000..3b4672a --- /dev/null +++ b/test/.gitignore @@ -0,0 +1,6 @@ +################# +## Windows +################# + +Thumbs.db +pics/* diff --git a/test/cards.php b/test/cards.php new file mode 100644 index 0000000..e82e9e4 --- /dev/null +++ b/test/cards.php @@ -0,0 +1,77 @@ +0) + $sql.= " AND datas.id=$id"; + + $alias=(int)getValue('alias','0'); + if($alias>0) + $sql.= " AND (datas.alias=$alias OR datas.id=$alias)"; + + $atk=(int)getValue('atk','-10'); + if($atk>=-2) + $sql.= " AND datas.atk=$atk"; + + $def=(int)getValue('def','-10'); + if($def>=-2) + $sql.= " AND datas.def=$def"; + + if(isset($_GET['attribute'])){ + $attribute=(int)getValue('attribute','0'); + if($attribute>0) + $sql.= " AND datas.attribute=$attribute"; + } + + $ot=(int)getValue('ot','0'); + if($ot>0) + $sql.= " AND datas.ot=$ot"; + + $race=(int)getValue('race','0'); + if($race>0) + $sql.= " AND datas.race=$race"; + + $type=(int)getValue('type','0'); + if($type>0) + $sql.= " AND datas.type & $type = $type "; + + $level=(int)getValue('level','-1'); + if($level>=0) + $sql.= " AND datas.level=$level"; + + //category + $category=(float)getValue('category','0'); + + //setcode + $setcode=(float)getValue('setcode','0'); + + if($cdbfile!=$decdbfile && $merge!='false'){ + $cards=array_merge($cards, getCards($decdbfile,$sql, $is_full)); + $cards=array_merge($cards, getCards($cdbfile, $sql, $is_full)); + } + else{ + $cards=getCards($cdbfile, $sql, $is_full); + } +} +echo json_encode($cards); \ No newline at end of file diff --git a/test/cdblist.php b/test/cdblist.php new file mode 100644 index 0000000..3f084b0 --- /dev/null +++ b/test/cdblist.php @@ -0,0 +1,15 @@ +0){ + if(strlen($filename)==0) + $filename="noname"; + if(!checkex($filename,$type)) + $filename .='.'.$type; + Header("Content-type: application/octet-stream"); + Header("Accept-Ranges: bytes"); + Header("Accept-Length: ".strlen($scripts)); + Header("Content-Disposition: attachment; filename=".$filename); + echo $scripts; +} \ No newline at end of file diff --git a/test/js/puzzlemaker.js b/test/js/puzzlemaker.js new file mode 100644 index 0000000..d2c3b26 --- /dev/null +++ b/test/js/puzzlemaker.js @@ -0,0 +1,93 @@ + +cards_url = "test/cards.php?full=false"; +card_img_url = "test/pics/"; +card_img_thumb_url = "test/pics/thumbnail/"; +img_qm="images/qm.png"; +img_close="images/close.png"; +img_unkown="images/unknow.jpg"; +var cdb_url="test/cdblist.php"; + +function getcarddata(result,card){ + var data = { + "_id": card._id, + "name": card.name, + "type": getType(card.type), + "typecode": card.type, + "atk": card.atk, + "def": card.def, + "level": card.level, + "star": getStars(card.level), + "race": getRace(card.race), + "attribute": getAttribute(card.attribute), + "desc": card.desc + }; + return data; +} + +function loadCards(cards_id, cards){ + $.ajaxSettings.async = false; + for(var _i=0;_iquery($sql); + if($rs){ + $reader=$rs->fetchAll(); + foreach ($reader as $key => $value) { + $temp=array(); + $id=(int)$value['id']; + $temp['_id'] = $id; + $temp['type']=(int)$value['type']; + $temp['atk']=(int)$value['atk']; + $temp['def']=(int)$value['def']; + $temp['level']=(int)$value['level']; + $temp['race']=(int)$value['race']; + $temp['attribute']=(int)$value['attribute']; + $temp['name']=$value['name']; + $temp['desc']=$value['desc']; + if($is_full){ + $temp['ot']=(int)$value['ot']; + $temp['alias']=(int)$value['alias']; + $temp['setcode']=(int)$value['setcode']; + $temp['category']=(int)$value['category']; + for($i=1;$i<=16;$i++){ + $temp['str'.$i]=$value['str'.$i]; + } + } + + $cards[]=$temp; + } + } + return $cards; +} \ No newline at end of file diff --git a/test/php/ext/php_pdo_sqlite.dll b/test/php/ext/php_pdo_sqlite.dll new file mode 100644 index 0000000..d6367a5 Binary files /dev/null and b/test/php/ext/php_pdo_sqlite.dll differ diff --git a/test/php/ext/php_sqlite3.dll b/test/php/ext/php_sqlite3.dll new file mode 100644 index 0000000..dcd55fb Binary files /dev/null and b/test/php/ext/php_sqlite3.dll differ diff --git a/test/php/license.txt b/test/php/license.txt new file mode 100644 index 0000000..3cc8b77 --- /dev/null +++ b/test/php/license.txt @@ -0,0 +1,68 @@ +-------------------------------------------------------------------- + The PHP License, version 3.01 +Copyright (c) 1999 - 2010 The PHP Group. All rights reserved. +-------------------------------------------------------------------- + +Redistribution and use in source and binary forms, with or without +modification, is permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. The name "PHP" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact group@php.net. + + 4. Products derived from this software may not be called "PHP", nor + may "PHP" appear in their name, without prior written permission + from group@php.net. You may indicate that your software works in + conjunction with PHP by saying "Foo for PHP" instead of calling + it "PHP Foo" or "phpfoo" + + 5. The PHP Group may publish revised and/or new versions of the + license from time to time. Each version will be given a + distinguishing version number. + Once covered code has been published under a particular version + of the license, you may always continue to use it under the terms + of that version. You may also choose to use such covered code + under the terms of any subsequent version of the license + published by the PHP Group. No one other than the PHP Group has + the right to modify the terms applicable to covered code created + under this License. + + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes PHP software, freely available from + ". + +THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP +DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------- + +This software consists of voluntary contributions made by many +individuals on behalf of the PHP Group. + +The PHP Group can be contacted via Email at group@php.net. + +For more information on the PHP Group and the PHP project, +please see . + +PHP includes the Zend Engine, freely available at +. diff --git a/test/php/php.exe b/test/php/php.exe new file mode 100644 index 0000000..ef24fb0 Binary files /dev/null and b/test/php/php.exe differ diff --git a/test/php/php.ini b/test/php/php.ini new file mode 100644 index 0000000..4964481 --- /dev/null +++ b/test/php/php.ini @@ -0,0 +1,1866 @@ +; -------------------------------------------- ; + +; Do not edit this file! +; This file is automatically generated by Usbwebserver +; TO edit the config file go to: +; settings/php.ini +; Any changes made in this file wil be reset on next restart + +; -------------------------------------------- ; + + +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. (As of PHP 5.2.0) +; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (C:\windows or C:\winnt) +; See the PHP docs for more specific information. +; http://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and Lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; http://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it's +; much more verbose when it comes to errors. We recommending using the +; development version only in development environments as errors shown to +; application users can inadvertently leak otherwise secure information. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; allow_call_time_pass_reference +; Default Value: On +; Development Value: Off +; Production Value: Off + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL & ~E_NOTICE +; Development Value: E_ALL | E_STRICT +; Production Value: E_ALL & ~E_DEPRECATED + +; html_errors +; Default Value: On +; Development Value: On +; Production value: Off + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; magic_quotes_gpc +; Default Value: On +; Development Value: Off +; Production Value: Off + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; register_long_arrays +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.bug_compat_42 +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.bug_compat_warn +; Default Value: On +; Development Value: On +; Production Value: Off + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.hash_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; track_errors +; Default Value: Off +; Development Value: On +; Production Value: Off + +; url_rewriter.tags +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; http://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It's been +; recommended for several years that you not use the short tag "short cut" and +; instead to use the full tag combination. With the wide spread use +; of XML and use of these tags by other languages, the server can become easily +; confused and end up parsing the wrong code in the wrong context. But because +; this short cut has been a feature for such a long time, it's currently still +; supported for backwards compatibility, but we recommend you don't use them. +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/short-open-tag +short_open_tag = Off + +; Allow ASP-style <% %> tags. +; http://php.net/asp-tags +asp_tags = Off + +; The number of significant digits displayed in floating point numbers. +; http://php.net/precision +precision = 14 + +; Output buffering is a mechanism for controlling how much output data +; (excluding headers and cookies) PHP should keep internally before pushing that +; data to the client. If your application's output exceeds this setting, PHP +; will send that data in chunks of roughly the size you specify. +; Turning on this setting and managing its maximum buffer size can yield some +; interesting side-effects depending on your application and web server. +; You may be able to send headers and cookies after you've already sent output +; through print or echo. You also may see performance benefits if your server is +; emitting less packets due to buffered output versus PHP streaming the output +; as it gets it. On production servers, 4096 bytes is a good setting for performance +; reasons. +; Note: Output buffering can also be controlled via Output Buffering Control +; functions. +; Possible Values: +; On = Enabled and buffer is unlimited. (Use with caution) +; Off = Disabled +; Integer = Enables the buffer and sets its maximum size in bytes. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 +; http://php.net/output-buffering +output_buffering = 4096 + +; You can redirect all of the output of your scripts to a function. For +; example, if you set output_handler to "mb_output_handler", character +; encoding will be transparently converted to the specified encoding. +; Setting any output handler automatically turns on output buffering. +; Note: People who wrote portable scripts should not depend on this ini +; directive. Instead, explicitly set the output handler using ob_start(). +; Using this ini directive may cause problems unless you know what script +; is doing. +; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" +; and you cannot use both "ob_gzhandler" and "zlib.output_compression". +; Note: output_handler must be empty if this is set 'On' !!!! +; Instead you must use zlib.output_handler. +; http://php.net/output-handler +;output_handler = + +; Transparent output compression using the zlib library +; Valid values for this option are 'off', 'on', or a specific buffer size +; to be used for compression (default is 4KB) +; Note: Resulting chunk size may vary due to nature of compression. PHP +; outputs chunks that are few hundreds bytes each as a result of +; compression. If you prefer a larger chunk size for better +; performance, enable output_buffering in addition. +; Note: You need to use zlib.output_handler instead of the standard +; output_handler, or otherwise the output will be corrupted. +; http://php.net/zlib.output-compression +zlib.output_compression = Off + +; http://php.net/zlib.output-compression-level +;zlib.output_compression_level = -1 + +; You cannot specify additional output handlers if zlib.output_compression +; is activated here. This setting does the same as output_handler but in +; a different order. +; http://php.net/zlib.output-handler +;zlib.output_handler = + +; Implicit flush tells PHP to tell the output layer to flush itself +; automatically after every output block. This is equivalent to calling the +; PHP function flush() after each and every call to print() or echo() and each +; and every HTML block. Turning this option on has serious performance +; implications and is generally recommended for debugging purposes only. +; http://php.net/implicit-flush +; Note: This directive is hardcoded to On for the CLI SAPI +implicit_flush = Off + +; The unserialize callback function will be called (with the undefined class' +; name as parameter), if the unserializer finds an undefined class +; which should be instantiated. A warning appears if the specified function is +; not defined, or if the function doesn't include/implement the missing class. +; So only set this entry, if you really want to implement such a +; callback-function. +unserialize_callback_func = + +; When floats & doubles are serialized store serialize_precision significant +; digits after the floating point. The default value ensures that when floats +; are decoded with unserialize, the data will remain the same. +serialize_precision = 17 + +; open_basedir, if set, limits all file operations to the defined directory +; and below. This directive makes most sense if used in a per-directory +; or per-virtualhost web server configuration file. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/open-basedir +;open_basedir = + +; This directive allows you to disable certain functions for security reasons. +; It receives a comma-delimited list of function names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/disable-functions +disable_functions = + +; This directive allows you to disable certain classes for security reasons. +; It receives a comma-delimited list of class names. This directive is +; *NOT* affected by whether Safe Mode is turned On or Off. +; http://php.net/disable-classes +disable_classes = + +; Colors for Syntax Highlighting mode. Anything that's acceptable in +; would work. +; http://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.bg = #FFFFFF +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; http://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; http://php.net/realpath-cache-size +;realpath_cache_size = 16k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; http://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; http://php.net/zend.enable-gc +zend.enable_gc = On + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; http://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; http://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; http://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; http://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +; max_input_vars = 1000 + +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0) +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it's automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) +; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) +; Default Value: E_ALL & ~E_NOTICE +; Development Value: E_ALL | E_STRICT +; Production Value: E_ALL & ~E_DEPRECATED +; http://php.net/error-reporting +error_reporting = E_ALL + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; It's recommended that errors be logged on production servers rather than +; having the errors sent to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/display-errors +display_errors = On + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. PHP's default behavior is to suppress those +; errors from clients. Turning the display of startup errors on can be useful in +; debugging configuration problems. But, it's strongly recommended that you +; leave this setting off on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/display-startup-errors +display_startup_errors = On + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; http://php.net/log-errors +log_errors = On + +; Set maximum length of log_errors. In error_log information about the source is +; added. The default is 1024 and 0 allows to not apply any maximum length at all. +; http://php.net/log-errors-max-len +log_errors_max_len = 1024 + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; http://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; http://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This has only effect in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; http://php.net/report-memleaks +report_memleaks = On + +; This setting is on by default. +;report_zend_debug = 0 + +; Store the last error/warning message in $php_errormsg (boolean). Setting this value +; to On can assist in debugging and is appropriate for development servers. It should +; however be disabled on production servers. +; Default Value: Off +; Development Value: On +; Production Value: Off +; http://php.net/track-errors +track_errors = On + +; Turn off normal error reporting and emit XML-RPC error XML +; http://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of inserting html +; links to documentation related to that error. This directive controls whether +; those HTML links appear in error messages or not. For performance and security +; reasons, it's recommended you disable this on production servers. +; Note: This directive is hardcoded to Off for the CLI SAPI +; Default Value: On +; Development Value: On +; Production value: Off +; http://php.net/html-errors +html_errors = On + +; If html_errors is set On PHP produces clickable error messages that direct +; to a page describing the error or function causing the error in detail. +; You can download a copy of the PHP manual from http://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty. +; Note: Never use this feature for production boxes. +; http://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; http://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; http://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; http://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on NT, not valid in Windows 95). +;error_log = syslog + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; http://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; http://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. If the register_globals directive is enabled, it also determines +; what order variables are populated into the global space. G,P,C,E & S are +; abbreviations for the following respective super globals: GET, POST, COOKIE, +; ENV and SERVER. There is a performance penalty paid for the registration of +; these arrays and because ENV is not as commonly used as the others, ENV is +; is not recommended on productions servers. You can still get access to +; the environment variables through getenv() should you need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; http://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P,C,E & S) should +; be registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive are +; specified in the same manner as the variables_order directive, EXCEPT one. +; Leaving this value empty will cause PHP to use the value set in the +; variables_order directive. It does not mean it will leave the super globals +; array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; http://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; http://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the SERVER and ENV variables are created when they're first +; used (Just In Time) instead of when the script starts. If these variables +; are not used within a script, having this directive on will result in a +; performance gain. The PHP directives register_globals, register_long_arrays, +; and register_argc_argv must be disabled for this directive to have any affect. +; http://php.net/auto-globals-jit +auto_globals_jit = On + +; Maximum size of POST data that PHP will accept. +; http://php.net/post-max-size +post_max_size = 8M + + +; Automatically add files before PHP document. +; http://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; http://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a character encoding using +; the Content-type: header. To disable sending of the charset, simply +; set it to be empty. +; +; PHP's built-in default is text/html +; http://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to empty. +; http://php.net/default-charset +;default_charset = "iso-8859-1" + +; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is +; to disable this feature. +; http://php.net/always-populate-raw-post-data +;always_populate_raw_post_data = On + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +include_path = ".;" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; http://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; http://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; http://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; http://php.net/extension-dir +; extension_dir = "./" +; On windows: +extension_dir = "./ext/" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; http://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; http://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; http://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = ; + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; http://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; http://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1; + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If it's set 0 PHP sends Status: header that +; is supported by Apache. When this option is set to 1 PHP will send +; RFC2616 compliant header. +; Default is zero. +; http://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; http://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; http://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; http://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like http:// or ftp://) as files. +; http://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; http://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; http://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; http://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; http://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename.extension +; +; For example, on Windows: +; +; extension=msql.dll +; +; ... or under UNIX: +; +; extension=msql.so +; +; ... or with a path: +; +; extension=/path/to/extension/msql.so +; +; If you only provide the name of the extension, PHP will look for it in its +; default extension directory. +; +; Windows Extensions +; Note that ODBC support is built in, so no dll is needed for it. +; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +; extension folders as well as the separate PECL DLL download (PHP 5). +; Be sure to appropriately set the extension_dir directive. +; +;extension=php_bz2.dll +;extension=php_curl.dll +;extension=php_fileinfo.dll +;extension=php_gd2.dll +;extension=php_gettext.dll +;extension=php_gmp.dll +;extension=php_intl.dll +;extension=php_imap.dll +;extension=php_interbase.dll +;extension=php_ldap.dll +;extension=php_mbstring.dll +;extension=php_exif.dll ; Must be after mbstring as it depends on it +;extension=php_mysql.dll +;extension=php_mysqli.dll +;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client +;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client +;extension=php_openssl.dll +;extension=php_pdo_firebird.dll +;extension=php_pdo_mssql.dll +;extension=php_pdo_mysql.dll +;extension=php_pdo_oci.dll +;extension=php_pdo_odbc.dll +;extension=php_pdo_pgsql.dll +extension=php_pdo_sqlite.dll +;extension=php_pgsql.dll +;extension=php_pspell.dll +;extension=php_shmop.dll + +; The MIBS data available in the PHP distribution must be installed. +; See http://www.php.net/manual/en/snmp.installation.php +;extension=php_snmp.dll + +;extension=php_soap.dll +;extension=php_sockets.dll +extension=php_sqlite3.dll +;extension=php_sybase_ct.dll +;extension=php_tidy.dll +;extension=php_xmlrpc.dll +;extension=php_xsl.dll +;extension=php_zip.dll + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On +[Date] +; Defines the default timezone used by the date functions +; http://php.net/date.timezone +;date.timezone = Europe/Paris + +; http://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; http://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; http://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.583333 + +; http://php.net/date.sunset-zenith +;date.sunset_zenith = 90.583333 + +[filter] +; http://php.net/filter.default +;filter.default = unsafe_raw + +; http://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +;iconv.input_encoding = ISO-8859-1 +;iconv.internal_encoding = ISO-8859-1 +;iconv.output_encoding = ISO-8859-1 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING + +[sqlite] +; http://php.net/sqlite.assoc-case +;sqlite.assoc_case = 0 + +[sqlite3] +;sqlite3.extension_dir = + +[Pcre] +;PCRE library backtracking limit. +; http://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +;PCRE library recursion limit. +;Please note that if you set this value to a high number you may consume all +;the available process stack and eventually crash PHP (due to reaching the +;stack size limit imposed by the Operating System). +; http://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; http://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +;pdo_odbc.db2_instance_name + +[Pdo_mysql] +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/pdo_mysql.cache_size +pdo_mysql.cache_size = 2000 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/pdo_mysql.default-socket +pdo_mysql.default_socket= + +[Phar] +; http://php.net/phar.readonly +;phar.readonly = On + +; http://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + + +[mail function] +; For Win32 only. +; http://php.net/smtp +SMTP = localhost +; http://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; http://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; http://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(), even in safe mode. +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = On + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = + +[SQL] +; http://php.net/sql.safe-mode +sql.safe_mode = Off + +[ODBC] +; http://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; http://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; http://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; http://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; http://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; http://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; http://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +;birdstep.max_links = -1 + +[Interbase] +; Allow or prevent persistent links. +ibase.allow_persistent = 1 + +; Maximum number of persistent links. -1 means no limit. +ibase.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +ibase.max_links = -1 + +; Default database name for ibase_connect(). +;ibase.default_db = + +; Default username for ibase_connect(). +;ibase.default_user = + +; Default password for ibase_connect(). +;ibase.default_password = + +; Default charset for ibase_connect(). +;ibase.default_charset = + +; Default timestamp format. +ibase.timestampformat = "%Y-%m-%d %H:%M:%S" + +; Default date format. +ibase.dateformat = "%Y-%m-%d" + +; Default time format. +ibase.timeformat = "%H:%M:%S" + +[MySQL] +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysql.allow_local_infile +mysql.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysql.allow-persistent +mysql.allow_persistent = On + +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/mysql.cache_size +mysql.cache_size = 2000 + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysql.max-persistent +mysql.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/mysql.max-links +mysql.max_links = -1 + +; Default port number for mysql_connect(). If unset, mysql_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysql.default-port +mysql.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysql.default-socket +mysql.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysql.default-host +mysql.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysql.default-user +mysql.default_user = + +; Default password for mysql_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysql.default-password +mysql.default_password = + +; Maximum time (in seconds) for connect timeout. -1 means no limit +; http://php.net/mysql.connect-timeout +mysql.connect_timeout = 60 + +; Trace mode. When trace_mode is active (=On), warnings for table/index scans and +; SQL-Errors will be displayed. +; http://php.net/mysql.trace-mode +mysql.trace_mode = Off + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; http://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; Allow or prevent persistent links. +; http://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; http://php.net/mysqli.max-links +mysqli.max_links = -1 + +; If mysqlnd is used: Number of cache slots for the internal result set cache +; http://php.net/mysqli.cache_size +mysqli.cache_size = 2000 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; http://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; http://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysql_connect() (doesn't apply in safe mode). +; http://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; http://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_statistics +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +; http://php.net/mysqlnd.collect_memory_statistics +mysqlnd.collect_memory_statistics = On + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +; http://php.net/mysqlnd.net_cmd_buffer_size +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +; http://php.net/mysqlnd.net_read_buffer_size +;mysqlnd.net_read_buffer_size = 32768 + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; http://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; http://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; http://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; http://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle 11g Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; http://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables statement prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; http://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; http://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; http://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; http://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; http://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; http://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; http://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[Sybase-CT] +; Allow or prevent persistent links. +; http://php.net/sybct.allow-persistent +sybct.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; http://php.net/sybct.max-persistent +sybct.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; http://php.net/sybct.max-links +sybct.max_links = -1 + +; Minimum server message severity to display. +; http://php.net/sybct.min-server-severity +sybct.min_server_severity = 10 + +; Minimum client message severity to display. +; http://php.net/sybct.min-client-severity +sybct.min_client_severity = 10 + +; Set per-context timeout +; http://php.net/sybct.timeout +;sybct.timeout= + +;sybct.packet_size + +; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. +; Default: one minute +;sybct.login_timeout= + +; The name of the host you claim to be connecting from, for display by sp_who. +; Default: none +;sybct.hostname= + +; Allows you to define how often deadlocks are to be retried. -1 means "forever". +; Default: 0 +;sybct.deadlock_retry_count= + +[bcmath] +; Number of decimal digits for all bcmath functions. +; http://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; http://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; http://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if you +; or your OS have problems with lots of files in one directory, and is +; a more efficient layout for servers that handle lots of sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; http://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use cookies. +; http://php.net/session.use-cookies +session.use_cookies = 1 + +; http://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combatting +; session hijacking when not specifying and managing your own session id. It is +; not the end all be all of session hijacking defense, but it's a good start. +; http://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; http://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; http://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; http://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; http://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; http://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. +; http://php.net/session.cookie-httponly +session.cookie_httponly = + +; Handler used to serialize data. php is the standard serializer of PHP. +; http://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started +; on every session initialization. The probability is calculated by using +; gc_probability/gc_divisor. Where session.gc_probability is the numerator +; and gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using the following equation: +; gc_probability/gc_divisor. Where session.gc_probability is the numerator and +; session.gc_divisor is the denominator in the equation. Setting this value to 1 +; when the session.gc_divisor value is 100 will give you approximately a 1% chance +; the gc will run on any give request. Increasing this value to 1000 will give you +; a 0.1% chance the gc will run on any give request. For high volume production servers, +; this is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; http://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; http://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script would is the equivalent of +; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 | xargs rm + +; PHP 4.2 and less have an undocumented feature/bug that allows you to +; to initialize a session variable in the global scope, even when register_globals +; is disabled. PHP 4.3 and later will warn you, if this feature is used. +; You can disable the feature and the warning separately. At this time, +; the warning is only displayed, if bug_compat_42 is enabled. This feature +; introduces some serious security problems if not handled correctly. It's +; recommended that you do not use this feature on production servers. But you +; should enable this on development servers and enable the warning as well. If you +; do not enable the feature on development servers, you won't be warned when it's +; used and debugging errors caused by this can be difficult to track down. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/session.bug-compat-42 +session.bug_compat_42 = On + +; This setting controls whether or not you are warned by PHP when initializing a +; session value into the global space. session.bug_compat_42 must be enabled before +; these warnings can be issued by PHP. See the directive above for more information. +; Default Value: On +; Development Value: On +; Production Value: Off +; http://php.net/session.bug-compat-warn +session.bug_compat_warn = On + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; http://php.net/session.referer-check +session.referer_check = + +; How many bytes to read from the file. +; http://php.net/session.entropy-length +session.entropy_length = 0 + +; Specified here to create the session id. +; http://php.net/session.entropy-file +; On systems that don't have /dev/urandom /dev/arandom can be used +; On windows, setting the entropy_length setting will activate the +; Windows random source (using the CryptoAPI) +;session.entropy_file = /dev/urandom + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; http://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; http://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publically accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; http://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Select a hash function for use in generating session ids. +; Possible Values +; 0 (MD5 128 bits) +; 1 (SHA-1 160 bits) +; This option may also be set to the name of any hash function supported by +; the hash extension. A list of available hashes is returned by the hash_algos() +; function. +; http://php.net/session.hash-function +session.hash_function = 0 + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; http://php.net/session.hash-bits-per-character +session.hash_bits_per_character = 5 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +; form/fieldset are special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. If you want XHTML conformity, remove the form entry. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=,fieldset=" +; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" +; http://php.net/url-rewriter.tags +url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; http://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; http://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; http://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; http://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; http://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" +[MSSQL] +; Allow or prevent persistent links. +mssql.allow_persistent = On + +; Maximum number of persistent links. -1 means no limit. +mssql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +mssql.max_links = -1 + +; Minimum error severity to display. +mssql.min_error_severity = 10 + +; Minimum message severity to display. +mssql.min_message_severity = 10 + +; Compatibility mode with old versions of PHP 3.0. +mssql.compatability_mode = Off + +; Connect timeout +;mssql.connect_timeout = 5 + +; Query timeout +;mssql.timeout = 60 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textlimit = 4096 + +; Valid range 0 - 2147483647. Default = 4096. +;mssql.textsize = 4096 + +; Limits the number of records in each batch. 0 = all records in one batch. +;mssql.batchsize = 0 + +; Specify how datetime and datetim4 columns are returned +; On => Returns data converted to SQL server settings +; Off => Returns values as YYYY-MM-DD hh:mm:ss +;mssql.datetimeconvert = On + +; Use NT authentication when connecting to the server +mssql.secure_connection = Off + +; Specify max number of processes. -1 = library default +; msdlib defaults to 25 +; FreeTDS defaults to 4096 +;mssql.max_procs = -1 + +; Specify client character set. +; If empty or not set the client charset from freetds.conf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + +[Assertion] +; Assert(expr); active by default. +; http://php.net/assert.active +;assert.active = On + +; Issue a PHP warning for each failed assertion. +; http://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; http://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; http://php.net/assert.callback +;assert.callback = 0 + +; Eval the expression with current error_reporting(). Set to true if you want +; error_reporting(0) around the eval(). +; http://php.net/assert.quiet-eval +;assert.quiet_eval = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; http://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; http://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a components typlib on com_load() +; http://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; http://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; http://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +[mbstring] +; language for internal character representation. +; http://php.net/mbstring.language +;mbstring.language = Japanese + +; internal/script encoding. +; Some encoding cannot work as internal encoding. +; (e.g. SJIS, BIG5, ISO-2022-*) +; http://php.net/mbstring.internal-encoding +;mbstring.internal_encoding = EUC-JP + +; http input encoding. +; http://php.net/mbstring.http-input +;mbstring.http_input = auto + +; http output encoding. mb_output_handler must be +; registered as output buffer to function +; http://php.net/mbstring.http-output +;mbstring.http_output = SJIS + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; http://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; auto means +; http://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; http://php.net/mbstring.substitute-character +;mbstring.substitute_character = none; + +; overload(replace) single byte functions by mbstring functions. +; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), +; etc. Possible values are 0,1,2,4 or combination of them. +; For example, 7 for overload everything. +; 0: No overload +; 1: Overload mail() function +; 2: Overload str*() functions +; 4: Overload ereg*() functions +; http://php.net/mbstring.func-overload +;mbstring.func_overload = 0 + +; enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetype= + +; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte +; Default: "" +;mbstring.script_encoding= + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; http://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 0 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; http://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; http://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; http://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; http://php.net/exif.encode-jis +;exif.encode_jis = + +; http://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; http://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; http://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; http://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; http://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; http://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; http://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[mcrypt] +; For more information about mcrypt settings see http://php.net/mcrypt-module-open + +; Directory where to load mcrypt algorithms +; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) +;mcrypt.algorithms_dir= + +; Directory where to load mcrypt modes +; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) +;mcrypt.modes_dir= + +[dba] +;dba.default_handler= + +; Local Variables: +; tab-width: 4 +; End: + diff --git a/test/php/php5ts.dll b/test/php/php5ts.dll new file mode 100644 index 0000000..5e93caf Binary files /dev/null and b/test/php/php5ts.dll differ diff --git a/test/test.php b/test/test.php new file mode 100644 index 0000000..6971793 --- /dev/null +++ b/test/test.php @@ -0,0 +1,18 @@ +'; +echo $s1.'
    '; +echo $s2.'
    '; +echo $s3.'
    '; +echo $s4.'
    '; \ No newline at end of file diff --git a/ygopro-PuzzleMaker.url b/ygopro-PuzzleMaker.url new file mode 100644 index 0000000..9333aa0 --- /dev/null +++ b/ygopro-PuzzleMaker.url @@ -0,0 +1,6 @@ +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 +[InternetShortcut] +URL=http://localhost:8080/test.html +IDList= +HotKey=0