首页 > 编程技术 > php

验证邮箱格式 用户名 url 的php正则表达式

发布时间:2016-11-25 15:51

下们用到了php教程的了ereg函数来验证电子邮箱地址,用户名,url地址实例了。

把url拆分

<?
$url = "http://www.111cn.net";

$www_url = ereg("^(http://www).([[:alnum:]]+).([[:alnum:]]+)", $url, $regs);

if ($www_url) :        
     echo $regs[0];    
     print "<br>";
     echo $regs[1];    
     print "<br>";
     echo $regs[2];    
     print "<br>";
     echo $regs[3];    
endif;
?>


 
邮箱地址

<?php

    $s = 'm@t.ca';

    if (ereg ('([[:alpha:]]+)@([[:alpha:]]+).([[:alpha:]]{2,4})', $s, $matches))
    {
      echo "Regular expression successful. Dumping matchesn";
      var_dump ($matches);
    }
    else
    {
      echo "Regular expression unsuccessful.n";
    }

?>


 

邮箱地址二

<?
        $email="a@a.com";
        $is_com = ereg("(.)(com$)", $email);
        print $is_com;
?>

用户名验证

<?php
   $username = "Test";
   if (ereg("([^a-z])",$username)) echo "Username must be all lowercase!";
?>

php教程循环语句for while do while的用法
<?php
循环结构
 一、while循环
 while(表达式)
{
 循环体;//反复执行,直到表达式为假
}

<?php
$num = 1;

while ($num <= 10){
    print "Number is $num<br />";
    $num++;
}

print 'Done.';
?>

Do While 循环语句与while有一定的区别,它们的区别就是do while不管条件是否为真都会先执行一下,而while必须为真才会执行一次.

do {
echo "Mmmmm...I love cookies! *munch munch munch*";
} while ($cookies > 1);

输出就是.

Mmmmm...I love cookies! *munch munch munch


三、for循环

 根据循环条件不同,有两种类型的循环

一种:计数循环 (一般使用for)
另一种:条件型循环 (一般使用 while   do-while)

for (expr1; expr2; expr3) {
  statement
}

其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。

下例是用 for 循环写的 "以后不敢了" 的例子,可以拿来和用 while 循环的比较。

<?php
for ($i=1; $i<=10; $i++) {
  echo "$i. 以后不敢了<br>n";
}
?>


输出表格

<HEAD>
  <TITLE>Value of Shares</TITLE>
  <H3>Table Showing Cost of Shares</H3>
  <BODY>
  <TABLE BORDER=1>
  <?php
  for ($shares = 1; $shares <= 20; $shares++){
     $cost = $shares * 20;
     echo "<TR><TD>The cost of $shares share/s is $cost #x0024s</TD>","n";
     $dividend = $cost * 0.10;
     echo "<TD>The dividend is $dividend #x0024s</TD></TR>  " ,"n";
  }
  ?>
  </TABLE>
  </BODY>
  </HTML>


累加计算
 

<?php
   $count = 1;
   while ($count < 5) {
      echo "$count squared = ".pow($count,2). "<br />";
       $count++;
   }
?>


do while 循环

<html>
<head>
<title>The do...while Statement</title>
</head>
<body>
<div>
<?php
    $num = 1;
    do {
      print "Execution number: $num<br />n";
      $num++;
    } while ( $num > 200 && $num < 400 );
?>
</div>
</body>
</html>

php教程 全角半角正则表达式代码

//$keyword='破坏';//当值为破坏时可以加上超连接
$keyword='真皮层';//当值为直皮层时则不能匹配加上招连接

$url='www.111cn.net;

$content='激光光束透过表皮和真皮层,破坏色素细胞和色素颗粒';

$content = preg_replace( '|(?<=[^&])('.$keyword.')(?=[^&])|i', '<a href="'.$url.'">$1</a>', $content, 1);

//$content = preg_replace( '|(?<=[^&])('.$keyword.')([^&])|i', '<a href="'.$url.'">$1</a>$2', $content, 1); //这样也无法匹配
//有朋友遇到过这样的情况吗?应该如何解决呢?我试过了但凡能试的正则修正符,都没有用。

 

<?php

$keyword='破坏';//当值为破坏时可以加上超连接

$keyword2='真皮层';/

/当值为直皮层时则不能匹配加上招连接

$url='www.111cn.net';$content='激光光束透过表皮和<a href="http://www.111cn.net">真皮层</a>,破坏色素细胞和色素颗粒';


$a=preg_replace('/<a(.*)>'.$keyword2.'</a>/i',''.$keyword2.'',$content);

echo str_replace($keyword,'<a href="'.$url.'">'.$keyword.'</a>',$a);
?>

 

PHP 支持同时上传多个文件并将它们的信息自动以数组的形式组织。要完成这项功能,需要在 HTML 表单中对文件上传域使用和多选框与复选框相同的数组式提交语法。

 

<title> 多个文件上传 </title>
<link   rel= "stylesheet "   type= "text/css教程 "   href= "my.css ">
</head>
<body>
<FORM     action= "upload_array.php教程 "   method= "POST "   name= "upload_multifiles "   enctype= "multipart/form-data ">
      请选择文件:   <br>
        <INPUT   TYPE= "FILE "     name= "userfile[] "   size= "45 ">   <br>
        <INPUT   TYPE= "FILE "     name= "userfile[] "   size= "45 ">   <br>
        <INPUT   TYPE= "FILE "     name= "userfile[] "   size= "45 ">   <br>
        <INPUT   TYPE= "FILE "     name= "userfile[] "   size= "45 ">   <br>
        <INPUT   TYPE= "FILE "     name= "userfile[] "   size= "45 ">   <br>
        <INPUT   TYPE= "SUBMIT "     name= "submit "   value= "开始上传 ">

</FORM>

当以上表单被提交后,数组 $_FILES['userfile'],$_FILES['userfile']['name'] 和 $_FILES['userfile']['size'] 将被初始化(在 PHP 4.1.0 以前版本是 $HTTP_POST_FILES)。如果 register_globals 的设置为 on,则和文件上传相关的全局变量也将被初始化。所有这些提交的信息都将被储存到以数字为索引的数组中。

例如,假设名为 /home/test/review.html 和 /home/test/xwp.out 的文件被提交,则 $_FILES['userfile']['name'][0] 的值将是 review.html,而 $_FILES['userfile']['name'][1] 的值将是 xwp.out。类似的,$_FILES['userfile']['size'][0] 将包含文件 review.html 的大小,依此类推。

此外也同时设置了 $_FILES['userfile']['name'][0],$_FILES['userfile']['tmp_name'][0],$_FILES['userfile']['size'][0] 以及 $_FILES['userfile']['type'][0]。

 

php文件

upload_array.php
--------------------------------
<?php
    for($i=0;$i <count($userfile);$i++)
    {
        if($userfile_name[$i] <> " ")//判断上传的文件是否为空
        {
        copy($userfile[$i],$userfile_name[$i]);

        echo   "文件名:   ",$userfile_name[$i], " <br> ";
        echo   "文件大小:   ",$userfile_size[$i], " <br> ";
        echo   "文件类型:   ",$userfile_type[$i];
        }
    }
?>

php教程文件上传之原理分析与上传类代码

今天研究PHP注册POST/GET大变量的时候,看到了关于这块的一些东西,跟踪了半天,,先记录下来,免得以后再如此麻烦的跟踪
处理器注册:
[mod_php5.c, mod_php5模块初始化]
php_init_handler(server_rec *s, pool *p)
    ->[main/SAPI.c]sapi_startup(&apache_sapi_module)
        ->[main/SAPI.c]
sapi_globals_ctor(&sapi_globals)
            ->[main/php_content_types.c]php_setup_sapi_content_types(TSRMLS_C)
                ->[main/php_content_types.c
php_post_entries如下]sapi_register_post_entries(php_post_entries
TSRMLS_CC)
                    ->[main/SAPI.c]sapi_register_post_entry(p
TSRMLS_CC)

  如下面的代码,共注册了俩个处理器,分别处理post数据和文件上传。
  注1:参看在PHP Module中获取$_GET/$_POST/$_COOKIE的方法研究
[main/rfc1867.h]
      #define
MULTIPART_CONTENT_TYPE
"multipart/form-data"

[main/php_content_types.h]
     #define
DEFAULT_POST_CONTENT_TYPE
"application/x-www-form-urlencoded"

[main/SAPI.c]
struct
_sapi_post_entry
{
char *content_type;
        uint
content_type_len;
        void
(*post_reader)(TSRMLS_D);
        void
(*post_handler)(char *content_type_dup, void *arg
TSRMLS_DC);
    };
  [main/php_content_types.c]
static
sapi_post_entry
php_post_entries[] = {
{
DEFAULT_POST_CONTENT_TYPE, sizeof(DEFAULT_POST_CONTENT_TYPE)-1, sapi_read_standard_form_data, php_std_post_handler
},
        {
MULTIPART_CONTENT_TYPE,    sizeof(MULTIPART_CONTENT_TYPE)-1,    NULL,                         rfc1867_post_handler
},
        {
NULL, 0, NULL, NULL
}
};


<?php
#*********************************************************
#文件名称: yl_upload.class.php
#功能描述: 印像上传类
#程序制作:留印(adleyliu)
#联系qq  :14339095
#联系邮箱:adleyliu@163.com
#最后更新:     2007-11-11
#注:转发时请保留此声明信息,这段声明不并会影响你的速度!
#如有修改请将修改后的文件以邮件形式发送给作者一份,谢谢!
#
#*********************************************************
/*
//使用说明:
//声明一个上传类
   $yl_upload = new yl_upload_class();
//设置参数
   global $yl_filedata,$yl_directroy,$file_urldirectroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   $yl_filedata = 'filedata';//表单名
   $yl_directroy = '../upload_file';//上传主目录
   $file_urldirectroy = 'upload_file';//文件url(在编辑器KindEditor中用到,请查看upload.php实例)
   $yl_settingsnew = 'month_'.date('Ym');//上传主目录1按版块存入不同目录,2按月份存入不同目录,3按天存入不同目录
   $yl_maxsize = 2097152;  //这里以字节为单位(1024*2)*1024=2097152 = 2M
   $yl_sizeformat = 'k';   //显示文件大小单位b,k,m
   $yl_arrext = array('gif','jpg','jpeg','png','bmp');//允许上传文件类型
   $yl_ext = 0;  //0原文件类型上传,1统一为存为jpg
//上传
   $yl_upload -> yl_uploadfile();
*/
class yl_upload_class
{
#*********************************************************
#创建目录函数
#*********************************************************
function createfolder($yl_path)
{
   if (!file_exists($yl_path))
   {
    $this -> createfolder(dirname($yl_path));
    @mkdir($yl_path, 0777);
   }
   return $this -> createfolder;
}
#*********************************************************
#获取文件名称,大小,类型,临时文件名
#*********************************************************
function yl_getfilename($yl_type)
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   return $_FILES[$yl_filedata][$yl_type];
}
#*********************************************************
#获取文件大小
#*********************************************************
function yl_getfilesize()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   if($this -> yl_getfilename('size') == 0){
      $this -> alert("请选择上传文件!");
      exit;
   }
   if($this -> yl_getfilename('size') > $yl_maxsize){
         $yl_maxsizek=$yl_maxsize/1024;
      $this -> alert("上传文件超出限制范围$yl_maxsizek.K!");
      exit;
   }
   switch (strtolower($yl_sizeformat)){
   case 'b':
   return $this -> yl_getfilename('size') . ' B';
   break;
   case 'k':
   return ($this -> yl_getfilename('size')/1024) . ' K';
   break;
   case 'm':
   return ($this -> yl_getfilename('size'))/(1024*1024) . ' M';
   }
}
#*********************************************************
#获得文件扩展名
#*********************************************************
function yl_getfiletype()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
     $yl_temp_arr = explode(".", $this -> yl_getfilename('name'));
     $yl_file_ext = array_pop($yl_temp_arr);
      $yl_file_ext = trim($yl_file_ext);
     $yl_file_ext = strtolower($yl_file_ext);
     //检查扩展名
     if (in_array($yl_file_ext, $yl_arrext) === false) {
        $this -> alert("上传文件类型被限制!");
        exit;
     }
     return $yl_file_ext;
}
#*********************************************************
#上传
#*********************************************************
function yl_uploadfile()
{
   global $yl_filedata,$yl_directroy,$file_urldirectroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   $yl_file_nameold = $this -> yl_getfilename('name');//原文件名
   $yl_file_namenews = date('Ymd').'_'.md5(date('YmdHis'));//重命名
   if($yl_ext == 0){
      $yl_file_names = $yl_file_namenews.'.'.$this -> yl_getfiletype();//改名
   }elseif ($yl_ext == 1){
      $yl_file_names = $yl_file_namenews.'.jpg';//统一改名为jpg
      }
   $yl_tmp_name = $this -> yl_getfilename('tmp_name');//服务器上临时文件名
   $yl_file_size = $this -> yl_getfilesize();//获取文件大小
   $yl_file_type = $this -> yl_getfiletype();//获取文件类型
   $yl_file_path = $yl_directroy.'/'.$yl_settingsnew;//建立一个目录
     //检查目录是否存在,不存在则创建
     if(@is_dir($yl_file_path) === false) {
      $this -> createfolder(''.$yl_file_path.'');//创建目录
     }
     //检查是否已上传
   if(@is_uploaded_file($yl_tmp_name) === false) {
        $this -> alert("文件已上传!");
        exit;
   }
     //检查目录写权限
     if (@is_writable($yl_file_path) === false) {
          $this -> alert("上传目录没有写权限!");
          exit;
     }
   $yl_doupload = @copy($yl_tmp_name, ''.$yl_file_path.'/'.$yl_file_names.'');
   if($yl_doUpload === false)
   {
    $this -> alert("上传失败!");
   }else{
    echo '上传成功';
    echo '<br>';
    echo '文件目录:'.$yl_file_path.'';
    echo '<br>';
    echo '原文件名:'.$yl_file_nameold.'';
    echo '<br>';
    echo '新文件名:'.$yl_file_names.'';
    echo '<br>';
    echo '文件大小:'.$yl_file_size.'';
    echo '<br>';
    echo '文件类型:'.$yl_file_type.'';
   }
    return;
}
#*********************************************************
#*删除文件
#*********************************************************
function delfile()
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   $yl__dir = dirname(trim($yl_directroy));
   if( $this->_isDel( $yl__dir ) )
   {
      return @unlink( $yl_directroy ) ? true : false;
   }else{
   return false;
   }
}
#*********************************************************
#删除目录 目录下如果有文件不能删除
#*********************************************************
function deldir( )
{
   global $yl_filedata,$yl_directroy,$yl_settingsnew;
   global $yl_maxsize,$yl_sizeformat,$yl_arrext,$yl_ext;
   if( $this->_isdel($yl_directroy) && is_dir( $yl_directroy ) )
   {
      return @rmdir( $yl_directroy ) ? true : false;
   }else{
      return false;
   }
}
#*********************************************************
#提示
#*********************************************************
function alert($yl_msg)
{
    echo '<html>';
    echo '<head>';
    echo '<title>error</title>';
    echo '<meta http-equiv="content-type" c>';
    echo '</head>';
    echo '<body>';
    echo '<script type="text/网页特效">alert("'.$yl_msg.'");;</script>';
    echo '</body>';
    echo '</html>';
    exit;
}
}
?>

标签:[!--infotagslink--]

您可能感兴趣的文章: