litqqs
注册会员

初级会员
UID 64079
精华
1
积分 154
帖子 116
金钱 144 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2005-5-12
状态 离线
|
[推荐阅读] 在大城市太郁闷太拥挤怎么办啊
第二步: 文件粘上下以HTML代码保存.
<?php <html> <head> <title>VT If Tag Translator</title> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <script language="JavaScript"> /* * author:TengQiu Li(Viky Li) * date:2007-06-10 * modify:2007-09-07 * */ var TransVar=false;//表明是否转换变量 var TransConst=false;//表明是否转换常量 var TransFormat='img|select|options|edit|editint|editnum|checkselect|checkcheckbox|checkradio|radio|checkbox';//表明要转换格式化名,当前可转换有: img|select|options|inputint|inputnum|num|date function getTranslatorInfo() { var i=0; var transArray = new Array(10); transArray[0] = "VT"; transArray[1] = "VT If Translator"; transArray[2] = "5"; transArray[3] = "htm"; transArray[4] = "html"; transArray[5] = "php"; transArray[6] = "shtm"; transArray[7] = "shtml"; transArray[8] = "0"; transArray[9] = "byExtension";// byExpression|allFiles|noFiles|byExtension|bystring return transArray; } function strToValue(str) { var r= new RegExp('"', "g"); str= str.replace(r,'"'); str= str.replace(/</ig,'<'); str= str.replace(/>/ig,'>'); return str; } function translateMarkup( docNameStr, siteRootStr, inStr ) { var patternFound = false; var pos = 0; var outStr = ''; var remainInStr = inStr;
//转换格式化器 if(''!=TransFormat){ pos=0; //remainInStr = outStr; //outStr=''; //reg = new RegExp("(str_img)","im"); reg=new RegExp("({(\$[\$a-z_0-9\[\]\'\\"]+):("+TransFormat+")(='([^rn']*?)')?})", "im"); while ((pos = remainInStr.search(reg)) >= 0){ var matchStr = RegExp.$1; var varStr = RegExp.$2; var formatStr = RegExp.$3; var _Str = RegExp.$4; var paramStr = RegExp.$5; outStr += remainInStr.substr(0, pos); var replacement=''; switch(formatStr){ case 'img' :replacement='<img src="" '+paramStr.replace(/"/g,'"')+' />';break; case 'select' :replacement='<select '+paramStr.replace(/"/g,'"')+'><option>'+varStr+'</option></select>';break; case 'options' :replacement='<option >'+varStr+'</option>';break; case 'checkbox' :replacement='<input type="checkbox" />'+varStr; break; case 'radio' :replacement='<input type="radio" />'+varStr; break; case 'edit' :replacement='<span style="background:#FFFF99"><input value="'+strToValue(varStr)+'" type="text" '+paramStr.replace(/"/g,'"')+' /></span>';break; case 'editint' :replacement='<span style="background:#FFFF99"><input value="'+strToValue(varStr)+'" type="text" '+paramStr.replace(/"/g,'"')+' /></span>';break; case 'editnum' :replacement='<span style="background:#FFFF99"><input value="'+strToValue(varStr)+'" type="text" '+paramStr.replace(/"/g,'"')+' /></span>';break; case 'checkselect' :replacement = '<img width="10" height="10">';break; case 'checkcheckbox' :replacement = '<img width="10" height="10">';break; case 'checkradio' :replacement = '<img width="10" height="10">';break; case 'date' ://replacement='<span style="background-color:#FF80FF;color:black;padding:0px 2px;">'; replacement += paramStr.replace('Y','1980').replace('m','05').replace('d','12').replace('H','04').replace('i','07').replace('s','33'); //replacement += '</span>'; break; default :replacement='{'+varStr+'}';break; } // Do translation outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="vtFormatVar" orig="' + escape(matchStr.replace(/"/g,'"')) + '" >'+replacement+'<MM:EndLock>'; // Re-search text following match remainInStr = remainInStr.substring(pos + matchStr.length); // Remember that at least one translation was performed patternFound = true; } outStr += remainInStr; }
//转换if与elseif pos = 0; remainInStr = outStr; outStr = ''; reg = new RegExp("(<!--[ trn]*@[ trn]*(if|elseif)[ trn]*((.*?))[ trn]*-->)", "im"); while ((pos = remainInStr.search(reg)) >= 0) { var matchStr = RegExp.$1; var matchTag = RegExp.$2; var matchCon = RegExp.$3; matchCon = matchCon.replace(/^[ t]+/,'').replace(/[ t]+$/,'').replace(/[ t]+/,' '); if(matchCon.length>10) matchCon = matchCon.substr(0,7) + '...'; matchCon = matchCon.replace('&','&').replace('<','<').replace('>','>').replace('"','"e;'); var replace =matchTag+'('+matchCon+')';
outStr += remainInStr.substr(0, pos); // Do translation outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="vtIf" orig="' + escape(matchStr) + '"';
outStr += '><span style="background-color:#FF80FF;color:black;padding:0px 2px;">@'+replace+'</span><MM:EndLock>'; // Re-search text following match remainInStr = remainInStr.substring(pos + matchStr.length); // Remember that at least one translation was performed patternFound = true; } outStr += remainInStr; //转换else pos=0; remainInStr = outStr; outStr=''; reg = new RegExp("(<!--[ trn]*@else[ trn]*-->)", "im"); while ((pos = remainInStr.search(reg)) >= 0) { var matchStr = RegExp.$1; outStr += remainInStr.substr(0, pos); // Do translation outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="vtIf" orig="' + escape(matchStr) + '"';
outStr += '><span style="background-color:#FF80FF;color:black;padding:0px 2px;">@else</span><MM:EndLock>'; // Re-search text following match remainInStr = remainInStr.substring(pos + matchStr.length); // Remember that at least one translation was performed patternFound = true; } //转换 endif outStr += remainInStr; pos=0; remainInStr = outStr; outStr=''; reg = new RegExp("(<!--[ trn]*@(/if|endif);?[ trn]*-->)", "im"); while ((pos = remainInStr.search(reg)) >= 0) { var matchStr = RegExp.$1; outStr += remainInStr.substr(0, pos); // Do translation outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="vtIf" orig="' + escape(matchStr) + '"';
outStr += '><span style="background-color:#FF80FF;color:black;padding:0px 2px;">@endif</span><MM:EndLock>'; // Re-search text following match remainInStr = remainInStr.substring(pos + matchStr.length); // Remember that at least one translation was performed patternFound = true; } outStr += remainInStr; //转换常量 if(TransConst){ pos=0; remainInStr = outStr; outStr=''; reg = new RegExp("({[([a-z_0-9x81-xfe]+)]})", "im"); while ((pos = remainInStr.search(reg)) >= 0) { var matchStr = RegExp.$1; var constStr = RegExp.$2; outStr += remainInStr.substr(0, pos); // Do translation outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="vtConst" orig="' + escape(matchStr) + '"';
outStr += '><span style="background-color:#FF80FF;color:black;padding:0px 2px;">'+RegExp+'</span><MM:EndLock>'; // Re-search text following match remainInStr = remainInStr.substring(pos + matchStr.length); // Remember that at least one translation was performed patternFound = true; } outStr += remainInStr; } // //
return patternFound ? outStr : ""; } </script> </head> <body> </body> </html> ?> [ 本帖最后由 litqqs 于 2007-9-7 10:18 PM 编辑 ]
|  心动就要行动.
秋士出品,必是精品. |
|