|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后... 此办法是一字一字往下抓ANSI色彩码转换,有点土法炼钢。以后和大局部TELNET软件
对照分歧是他们换行就有主动作加入码,而我这个并没有作。
<?
Echo "<body bgcolor=000000><PRE Style='font-family:cvga;font-size:18px;color:C6C7C6;'>";
Echo ANSI_2_HTML(Fread(Fopen("1.txt","r"),FileSize("1.txt")));
Echo "</pre>";
## ANSI 转换成 HTML
Function ANSI_2_HTML($String){
$ANSI_Light=Array("0"=>"000000","1"=>"#FF0000","2"=>"#00CC00","3"=>"#FFFF00","4"=>"#3366FF","5"=>"#CC33CC","6"=>"#66FFFF","7"=>"#FFFFFF");
$ANSI_Dark =Array("0"=>"000000","1"=>"#840000","2"=>"#008200","3"=>"#AD4100","4"=>"#000084","5"=>"#840084","6"=>"#00B6B5","7"=>"#C6C7C6");
## 色彩样本同CNEWS
$flag_have_ansi= 0;
$dl = 0;
$flag_hava_bg = 0;
$String=Str_replace(Chr(27).'[m',Chr(27).'[0m',$String);
For($i=0;$i<Strlen($String);$i++):
If($String[$i]==Chr(27)):
$lastString=Substr($String,$i,Strlen($String)-$i);
If(Ereg(Chr(27)."\[([0-8;]{0,}[^m])m",$lastString)):
$ansicode=Substr($lastString,2,Strpos($lastString,'m')-2);
$i=$i+Strpos($lastString,'m');
$Rendition=Split(";",$ansicode);
If(Is_Array($Rendition)) Sort($Rendition);
For($j=0;$j<=count($Rendition)-1;$j++):
$Rendition[$j]=(int)$Rendition[$j];
If($Rendition[$j]=='1') $dl=1;
If($Rendition[$j]=='0') $dl=0;
$ansi=($dl=='0') ? $ANSI_Dark : $ANSI_Light;
If($Rendition[$j]<10):
If($Rendition[$j]==0) :
$style="background-color:#000000;text-decoration:none;";
$tempBg="";
EndIf;
If($Rendition[$j]==1)
$style="color:#ffffff;";
If($Rendition[$j]==4)
$style=$style."text-decoration:underline;";
# 5 blink on
# 7 reverse video on
# 8 nondisplayed (invisible) 缺 不晓得若何实作显示,但大局部后三者用不到
EndIf;
If($Rendition[$j]>=30&&$Rendition[$j]<=37):
$style=$style."color:".$ansi[$Rendition[$j]%10].";";
$style=$style.$tempBg;
EndIf;
If($Rendition[$j]>=40):
$flag_hava_bg = 1;
$style=$style."background-color:".$ANSI_Dark[$Rendition[$j]%10].";";
$tempBg="background-color:".$ANSI_Dark[$Rendition[$j]%10].";";
EndIf;
EndFor;
If($flag_have_ansi==1):
$font="</span><span style=$style>";
ElseIf($flag_have_ansi==0):
$flag_hava_bg = 0;
$tempBg ="";
$font="<span style=$style>";
EndIf;
$flag_have_ansi=1;
$myansi.=$font;
EndIf;
Else:
$myansi.=$String[$i];
EndIf;
EndFor;
Return "</span>".$myansi;
}
下图为TELNET软件阅读
下图为阅读器阅读
大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。 |
|