几个php正则表达式结合switch输出的例子

本文通过三个实例演示了PHP中正则表达式的使用方法,包括验证电子邮件地址的有效性、检查字符串是否包含HTML标签以及从文本中提取图片的src属性。

参考资料:https://www.cnblogs.com/yejianfei/archive/2012/10/18/2729526.html

https://www.cnblogs.com/zcy_soft/archive/2010/10/16/1853239.html (PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别)

说明:在原文的基础上进行了一定的修改

代码如下↓↓

<?php
    header ( "Content-Type: text/html; charset=UTF-8" );
    $x = "";
    if(!empty($_GET['action'])){
        $x = $_GET['action'];
    }
    switch ($x){
        case "email":
              $email_address = $_POST["email_address"];
            $pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
            // $pattern = "/^([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i";
            if ( preg_match( $pattern, $email_address ) ){
                $reply1 = "您输入的电子邮件地址合法<br /><br />\n";
                $user_name = preg_replace( $pattern ,"$1", $email_address );
                $domain_name = preg_replace( $pattern ,"$2", $email_address );
                $reply1 .= "用户名:".$user_name."<br />\n";
                $reply1 .= "域名:".$domain_name."<br />\n\n";
            }
            else{
                $reply1 = "您输入的电子邮件地址不合法";
            }
              break;
        case "html":
            $reply2 = "";
            $html = $_POST["html"];
            $pattern = "/<[a-z]{1,20}>.*<\/>|<[a-z]{1,20}[\/]?>/i";
            if ( preg_match( $pattern, $html) ){
                $reply2 = "有html元素";
            }else{
                $reply2 = "没有html元素";
            }
              break;
        case "image":
            $reply3 = "";
            $image = $_POST["image"];
              // $pattern = '/<img.+src=\"(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/is';
              $pattern = '/<img.*?src=[\'|"](.*?(jpg|gif|bmp|bnp|png))[\'|"].*?>/is';
            $pattern = html_entity_decode($pattern);
            if ( preg_match_all( $pattern, $image,$img_src) ){
                foreach ($img_src[1] as $v) {
                    $reply3.= '图片的src地址是:'.$v."<br/>";
                }
            }else{
                $reply3 = "
                没有找到图片的src地址";
            }
            break;
            default:
            break;
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
<head>
    <title>php正则表达式</title>
    <style type="text/css">
        div{
            background-color: grey;
        }
        .submit{
            margin-bottom: 6px;
        }
    </style>
</head>
<body style="text-align: center;">
    <h1>php正则表达式</h1>
    <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]);?>?action=email" method="post">
        请输入电子邮件地址:
        <input name="email_address" type="text" style="width: 300px;" class="user_input"/>
        <input type="submit" value="验证电子邮件地址" class="submit" />
    </form>
    <?php
        if(!empty($reply1)){
            echo '<div>提示信息:'.$reply1."</div>";
        }
    ?>
    <form action="<?php echo htmlentities($_SERVER["PHP_SELF"]);?>?action=html" method="post">
        请输入字符串:
        <input name="html" type="text" style="width: 300px;" class="user_input"/>
        <input type="submit" value="验证html元素" class="submit" />
    </form>
    <?php
        if(!empty($reply2)){
            echo '<div>提示信息:'.$reply2."</div>";
        }
    ?>
    <form action="<?php echo htmlentities($_SERVER["SCRIPT_NAME"])?>?action=image" method="post">
        请输入字符串:
        <input name="image" type="text" style="width: 300px;" class="user_input"/>
        <input type="submit" value="找图片src属性值" class="submit" />
    </form>
    <?php
        if(!empty($reply3)){
            echo '<div>提示信息:'.$reply3."</div>";
        }
    ?>
</body>
</html>

效果如下:


转载请说明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值