在看 Discuz 模板的时候发现这样的语句
$var_regexp = "((///$[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*)(/[[a-zA-Z0-9_/-/./"/'/[/]/$/x7f-/xff]+/])*)";
/x 是16进制,这个我知道
但是我不明白 怎么就能通过 "/x7f-/xff" 知道是哪个编码(GBK 或 gb2312 或 utf-8什么的)里的哪些字呢?
1.我对这块知道的很少,所以希望越详细越好。
2.上面代码来自: Discuz->template.func.php里的parse_template()函数
楼一:
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style>
说明:(数字,数字) 两个数字代表对应的ASCII码,由这两个ASC组合可以生成该字!<br /><br />
<?php
$charcount = 0;
$br = 0;
for($i=176;$i<=215;$i++){
for($j=161;$j<=254;$j++){
$br++;
echo chr($i).(chr($j));
echo "(".$i.",".$j.")";
if(($br-13)==0){
echo "<br />";
$br = 0;
}
$charcount++;
}
}
echo "<br />";
echo "共 ".($charcount-5)."个汉字";
?>
<!--129到254,起始必须小于248(不包括248)176,161=>以"啊"开始,215,249以"座"结束-->
这个我某天下午无聊.试出来的!
我看php参考手册遇到的
PHP 中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
变量名与 PHP 中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*'。
Note: 在此所说的字母是 a-z,A-Z,以及 ASCII 字符从 127 到 255(0x7f-0xff)。