php中的preg_match()函数

$filename=$file['name'];if (!preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename)) { echo "文件类型不合法!"; } else { }解释一下preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename是什么意思?另外,preg_match()和preg_match all()函数的区别。另外为何我把语句改成:$allowtype="gif|jpeg|png|bmp|doc|";$filename=$file['name'];if (!preg_match('/\\.($allowtype)$/i', $filename)) { echo "文件类型不合法,只能上传".$allowtype."文件"; } else { }就报错?怎么改才正确?

preg_match()函数用于正则表达式知识匹配,如果成功则返回1,否则返回0。

Preg_match()在成功匹配之后停止匹配,如果要实现所有结果的内部匹配,则使用preg_match_all()函数。

php函数取得字符串长度:

1.首先,创建一个新的PHP文件并将其命名为test.php。

2.在test.php文件中,定义两个字符串,一个是纯英文字符串,另一个是中英文混合字符串。

3.使用strlen()方法来计算长度,从程序执行结果来看,strlen()方法计算的字符串长度$Str1是正确的,第二个字符串$Str2是错误的。

4.创建一个新的utf8_strlen()函数,并将其参数定义为$string,默认为null。

5.在utf8_strlen()函数中,使用preg_match_all()方法通过正则表达式分割字符串,并将其保存在$match变量中。最后,计算从count()方法获得的数组元素的数量,并返回结果。

6.使用utf8_strlen()分别计算$Str1和$Str2字符串的长度,并使用echo将结果输出到页面。

7.在浏览器中运行test.php文件并查看程序执行的结果。从这两个结果可以看出,统计字符串长度已经成功实现。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-23

preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。

preg_match() 匹配成功一次后就会停止匹配,如果要实现全部结果的匹配,则需使用preg_match_all() 函数。

例子:

<?php 
// 模式定界符后面的 "i" 表示不区分大小写字母的搜索 
if (preg_match ("/hi/i", "Welcome to hi-docs.com.")) { 
  echo "A match was found."; 
 } else { 
  echo "A match was not found."; 
 } 
 ?> 
 // 输出 A match was found.

第2个回答  推荐于2018-02-23
1 preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename)这句话的意思是检查文件名称是不是以点.gif/.jpeg...结束的

2 preg_match只要匹配到一个符合条件的就结束查找,而preg_match_all要将字符串从头检查到尾,不论是否找到匹配字符。

3 if (!preg_match('/\\.($allowtype)$/i', $filename)) 这句话有错,'引号中的$allowtype是不能引用变量值的,只当作字符串,因此应该这样:if (!preg_match('/\\.('.$allowtype.')$/i', $filename))本回答被提问者和网友采纳
第3个回答  2012-02-25
$filename--需要匹配的内容
preg_match()和preg_match all()函数的区别:一个匹配到内容就结束,一个匹配全部符合条件的;
怎么改?把if (!preg_match('/\\.(gif|jpeg|png|bmp|doc|)$/i', $filename)) 里面的!去掉呗