要求:
设计一个表单,使用GET 或者POST方法获取输入的字符串,编写php页面代码,统计字符串中数字字符、小写字母、大写字母、中文的个数,并把结果输出。
实现:
用一个form表单提交,然后用$_POST[“name”]获取字符串。
用php自带的preg_match_all以正则表达式取出不同类型的字符。
最后统计各字符串的长度。
中文识别正则参考:https://blog.csdn.net/hueise_h/article/details/22920937
代码:
<body>
<form method="POST" action="sy5_4.php">
<div>字符串统计</div>
<input type="hidden" name="Send" value="TRUE">
<div>请输入文本:
<input type="text" name="string">
</div>
<div><input type="submit" value="进行统计"></div>
</form>
<?php
if (isset($_POST["Send"])) {
$str = $_POST["string"];
preg_match_all("/[0-9]{1}/", $str, $arrNum);
preg_match_all("/[A-Z]{1}/", $str, $arrBEN);
preg_match_all("/[a-z]{1}/", $str, $arrSEN);
preg_match_all("/([\x80-\xff]){1}/", $str, $arrCH);
?>
<div>统计输入的字符串中:</div>
<?php
if(isset($arrNum)){
echo "数字个数:" . count($arrNum[0]) . "<br/>";}else{echo "数字个数:0";}
if(isset($arrBEN)){
echo "大写字母个数:" . count($arrBEN[0]) . "<br/>";}else{echo "大写英文个数:0";}
if(isset($arrSEN)){
echo "小写字母个数:" . count($arrSEN[0]) . "<br/>";}else{echo "小写英文个数:0";}
if(isset($arrCH)){
echo "中文个数:" . count($arrCH[0])/3;}else{echo "中文个数:0";}//中文是三个字节所以长度要除以3
}
?>
</body>