一、编码范围
1. gbk (gb2312/gb18030)
x00-xff gbk双字节编码范围
x20-x7f ascii
xa1-xff 中文
x80-xff 中文
2. utf-8 (unicode)
u4e00-u9fa5 (中文)
x3130-x318f (韩文)
xac00-xd7a3 (韩文)
u0800-u4e00 (日文)
ps教程: 韩文是大于[u9fa5]的字符
正则例子:
preg_replace("/([x80-xff])/","",$str);
preg_replace("/([u4e00-u9fa5])/","",$str);
二、代码例子
//判断内容里有没有中文-gbk (php教程)
function check_is_chinese($s){
return preg_match('/[x80-xff]./', $s);
}
//获取字符串长度-gbk (php)
function gb_strlen($str){
$count = 0;
for($i=0; $i<strlen($str); $i++){
$s = substr($str, $i, 1);
if (preg_match("/[x80-xff]/", $s)) ++$i;
++$count;
}
return $count;
}
//截取字符串字串-gbk (php)
function gb_substr($str, $len){
$count = 0;
for($i=0; $i<strlen($str); $i++){
if($count == $len) break;
if(preg_match("/[x80-xff]/", substr($str, $i, 1))) ++$i;
++$count;
}
return substr($str, 0, $i);
}
//统计字符串长度-utf8 (php)
function utf8_strlen($str) {
$count = 0;
for($i = 0; $i < strlen($str); $i++){
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
else die('not a utf-8 compatible string');
}
$count++;
}
return $count;
}
//截取字符串-utf8(php)
function utf8_substr($str,$position,$length){
$start_position = strlen($str);
$start_byte = 0;
$end_position = strlen($str);
$count = 0;
for($i = 0; $i < strlen($str); $i++){
if($count >= $position && $start_position > $i){
$start_position = $i;
$start_byte = $count;
}
if(($count-$start_byte)>=$length) {
$end_position = $i;
break;
}
$value = ord($str[$i]);
if($value > 127){
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
else die('not a utf-8 compatible string');
}
$count++;
}
return(substr($str,$start_position,$end_position-$start_position));
}
//字符串长度统计-utf8 [中文3个字节,俄文、韩文占2个字节,字母占1个字节] (ruby)
def utf8_string_length(str)
temp = cgi::unescape(str)
i = 0;
j = 0;
temp.length.times{|t|
if temp[t] < 127
i += 1
elseif temp[t] >= 127 and temp[t] < 224
j += 1
if 0 == (j % 2)
i += 2
j = 0
end
else
j += 1
if 0 == (j % 3)
i +=2
j = 0
end
end
}
return i
}
//判断是否是含有韩文-utf-8 (网页特效)
function checkkoreachar(str) {
for(i=0; i<str.length; i++) {
if(((str.charcodeat(i) > 0x3130 && str.charcodeat(i) < 0x318f) || (str.charcodeat(i) >= 0xac00 && str.charcodeat(i) <= 0xd7a3))) {
return true;
}
}
return false;
}
//判断是否有中文字符-gbk (javascript)
function check_chinese_char(s){
return (s.length != s.replace(/[^x00-xff]/g,"**").length);
}
代码如下 | 复制代码 |
<html> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312"> <title>创建、复制、移动、删除文件</title> <style type="text/css教程"> <!-- body { margin-left: 00px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --> </style></head> <body> <table width="350" border="1" cellpadding="0" cellspacing="0"> <tr> <td><table width="350" height="80" border="0" cellpadding="0" cellspacing="0" background="images/326ssss.gif"> <form name="form1" method="post" action="index.php教程"> <tr> <td width="95" height="39"> </td> <td width="171" rowspan="2" align="left" valign="middle"> <input name="fopens" type="text" id="copy2" size="22"></td> <td width="84" rowspan="2" valign="middle"><input name="submit4" type="submit" id="submit4" value="提交"></td> </tr> <tr> <td height="41"> </td> </tr> </form> </table></td> </tr> <tr> <td><table width="350" height="80" border="0" cellpadding="0" cellspacing="0" background="images/326s.gif"> <form name="form1" method="post" action="index.php"> <tr> <td width="111" height="39"> </td> <td width="155" valign="bottom"><input name="copys" type="text" id="copys2" size="20"> </td> <td width="84" rowspan="2" valign="middle"><input type="submit" name="submit" value="提交"></td> </tr> <tr> <td height="41"> </td> <td valign="top"><input name="copy2" type="text" id="copy22" size="20"></td> </tr> </form> </table></td> </tr> <tr> <td><table width="350" height="80" border="0" cellpadding="0" cellspacing="0" background="images/326ss.gif"> <form name="form1" method="post" action="index.php"> <tr> <td width="111" height="39"> </td> <td width="115" valign="bottom"><input name="moves" type="text" id="moves3" size="20"> </td> <td width="84" rowspan="2"><input type="submit" name="submit2" value="提交"></td> </tr> <tr> <td height="41"> </td> <td valign="top"><input name="moves2" type="text" id="moves22" size="20"></td> </tr> </form> </table></td> </tr> <tr> <td><table width="350" height="80" border="0" cellpadding="0" cellspacing="0" background="images/326sss.gif"> <form name="form1" method="post" action="index.php"> <tr> <td width="104"> </td> <td width="236"><input name="delete" type="text" id="delete2"> <input type="submit" name="submit3" value="提交"></td> </tr> </form> </table></td> </tr> </table> </body> </html> |
php代码
代码如下 | 复制代码 |
<?php session_start(); if($submit3=="提交"){ ?> |
function delsame(&$array)
{
$i = 0;
while(isset($array[$i]))
{
$j = $i + 1;
while(isset($array[$j]))
{
if($array[$i] == $array[$j]) //如果发现后面有重复的元素
{
delmember($array, $j); //把它删除
$j--; //重新检查补上来的元素是否是重复的
}
$j ++;
}
$i ++;
}
}
//删除数组中重复元素的函数
代码如下 | 复制代码 |
function delmember(&$array, $id) { $size = count($array); for($i = 0; $i <$size - $id - 1; $i ++) { $array[$id + $i] = $array[$id + $i + 1]; } unset($array[$size - 1]); } |
//使用例子:
代码如下 | 复制代码 |
$output = array(1, 2, 2, 'www.111cn.net', 5, 4, 4, 4, 2, 7, 5, 9, 10); delsame($output); while(list($key, $value) = each($output)) { echo "$key:$value"."<br>"; } |
//方法二
代码如下 | 复制代码 |
function uniquearray($array) { // get unique elts as keys in assoc. array for ($i=0,$n=count($array, 1);$i<$n;$i ) $u_array[$array[$i]] = 1;
// copy keys only into another array reset($u_array, 1); for ($i=0,$n=count($u_array, 1);$i<$n;$i ) { $unduplicated_array[] = key($u_array, 1); next($u_array, 1); } return $unduplicated_array; } |
//方法三
代码如下 | 复制代码 |
$hills=array("first"=>"data1","second"=>"www.111cn.net","third"=>"data1"); |
/*
array array_flip ( array trans )
array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。
注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转。
如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。
array_flip() 如果失败返回 false。
*/
本款函数是一款利用递归来一步步删除目录下文件与当前目录所有子目录哦,不管目录为不为空都可以删除,<?php教程
set_time_limit(0);
$filenum=0;
function deldir($dir){
global $filenum;
$dh=opendir($dir);
while ($file=readdir($dh)){
if($file!="."&&$file!=".."){
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)){
unlink($fullpath);
if(($filenum %100)==0){
echo "*";
}
$filenum=$filenum+1;
}else{
deldir($fullpath);
}
}
}
closedir($dh);
}
deldir("/www.111cn.net/");
echo "delete cache file success. total:".$filenum;
?>
代码如下 | 复制代码 |
function img_exits($url) if(curl_exec($ch)!==false) |
//方法二
代码如下 | 复制代码 |
function img_exists($url) // /** ?> |
网页特效方法
代码如下 | 复制代码 |
<script language= "网页特效 "> |