因为复选框大多是几个同时存在的,我们都会name[]的名字必须是一个数组的 这样只要获取一个就可以了
代码如下 | 复制代码 |
<input type="checkbox" name="frm_tag[]" id="frm_tag" value="1">1 处理表单的PHP页面代码: if(!empty($_POST['sport'])){ |
另一种方法
代码如下 | 复制代码 |
<input type="checkbox" name="weeks[]" id="weeks" value=1> 直接 $a = $_POST['weeks'] ;//这样得到的就是一个数组了,然后再把它转换成字符即可。 |
我们还可以用一做排序哦
代码如下 | 复制代码 |
<input name="orderby[78]" type="text" id="ordery" size="5" value="9999" /> php处理页面 $aid = $_POST['orderby']; foreach( $aid as $v=> $vv ) |
删除指定文件夹所有文件
代码如下 | 复制代码 |
$cacheDir = '../cache/runtime'; if (($file == '.') || ($file == '..')) { continue; } if (file_exists( $cacheDir . '/' .$file)) { |
上面只能删除目录中的文件,不能删除目录中的目录或目录下的文件,我这里既然讲到也给大家提供一个函数
代码如下 | 复制代码 |
function deltree($dirList){ |
上面使用的是递归遍历目录然后进行删除文件再删除目录了
在php中substr是用来截取字符的,但是有朋友会发现把它来截英文字母是没有任何问题,但是如果截中文时会出现半个汉字乱码了,下面我来介绍一些解决办法。substr() 函数返回字符串的一部分。
语法
substr(string,start,length)
例子 1
代码如下 | 复制代码 |
<?php 输出: world! |
例子2
代码如下 | 复制代码 |
echo substr('中国文',1); |
结果就是筹码了,后来才知道中文与英文的区别在于内编码了,一个网站这样说到substr函数在截取字符时是按字节来截取的,中文字符在GB2312编码时为2个字节,utf-8编码时为3个字节,所以截取指定长度的字符串时如果截断了汉字,那么返回的结果显示出来便会出现乱码
解决办法
1、利用mb_substr来截取
代码如下 | 复制代码 |
<?php echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); |
但是如果要使用mb_substr截取我们需要使用使用mbstring扩展库,如果没有权限的朋友我们就可参考下面函数
代码如下 | 复制代码 |
function msubstr($str, $start, $len) { |
例1
代码如下 | 复制代码 |
<?php |
其它规则这里就不举例了大家可直接参阅
例子:
正则表达式 |
^[a-zA-Z]w{5,17}$
|
---|---|
匹配 | 以字母开头,长度在6~18之间,只能包含字符、数字和下划线 |
不匹配 |
正则表达式 |
^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?!.*s).{4,8}$
|
---|---|
匹配 | 1agdA*$# | 1agdA*$# | 1agdA*$# |
不匹配 | wyrn%@*&$# f | mbndkfh782 | BNfhjdhfjd&*)%#$) |
正则表达式 |
[^A-Za-z0-9]
|
---|---|
匹配 | !@#$ | %^&* | '><?.," |
不匹配 | ABC123abc | abc123ABC | abc0132ABC |
正则表达式 |
Password="({.+}[0-9a-zA-Z]+[=]*|[0-9a-zA-Z]+)"
|
---|---|
匹配 | !@#$ | %^&* | '><?.," |
不匹配 | ABC123abc | abc123ABC | abc0132ABC |
正则表达式 |
(?-i)(?=^.{8,}$)((?!.*s)(?=.*[A-Z])(?=.*[a-z]))(?=(1)(?=.*d)|.*[^A-Za-z0-9])^.*$
|
---|---|
匹配 | a3dAbed. | P@ssword1 | aB_1bbbb | myPassw0rd! |
不匹配 | password | password12 | password__12 | p@ssw0rd |
如
代码如下 | 复制代码 |
<?php |
把程序保存成UTF-8编码再访问,IE6下载的文件名就会乱码。 FF3下下载的文件名就只有“中文”两个字。Opera 9下一切正常。
输出的header实际上是这样子:
代码如下 | 复制代码 |
Content-Disposition: attachment; filename=中文 文件名.txt其实按照RFC2231的定义, 多语言编码的Content-Disposition |
应该这么定义:
代码如下 | 复制代码 |
Content-Disposition: attachment; filename*="utf8''%E4%B8%AD%E6%96%87%20%E6%96%87%E4%BB%B6%E5%90%8D.txt" |
即:
filename后面的等号之前要加 *
filename的值用单引号分成三段,分别是字符集(utf8)、语言(空)和urlencode过的文件名。
最好加上双引号,否则文件名中空格后面的部分在Firefox中显示不出来
注意urlencode的结果与php的urlencode函数结果不太相同,php的urlencode会把空格替换成+,而这里需要替换成%20
例1
代码如下 | 复制代码 |
<?php $filename = basename($file); header("Content-type: application/octet-stream"); //处理中文文件名 header('Content-Disposition: attachment; filename="' . $filename . '"'); |
这样我们就完全解决了中文文名乱码这个问题了。