匹配中文字符串正则表达式

 更新时间:2016年11月25日 15:54  点击:1646
下面这款匹配中文字符串正则表达式是一款利用数组,然后 多次for把全是中文字符串的打印出来。

 

 代码如下 复制代码

$str_arr = array(
"iameverysorry",
"快乐编程,快乐生活",
"php教程编程",
"1997年香港回归",
"英语学习abc",
"www.111cn.net"
);

$patt_ch = chr(0xa1) . "-" . chr(0xff);

foreach ($str_arr as $str)
{
    echo "字符串'$str' 是";
    if (preg_match("/^[$patt_ch]+$/", $str))
    {
        echo "<b>完全中文</b>";
        echo "<br>";
        echo "<br>";
    }
    else
    {
        echo "非完全中文";
        echo "<br>";
        echo "<br>";
    }
}

/*
字符串'iameverysorry' 是非完全中文

字符串'快乐编程,快乐生活' 是完全中文

字符串'php编程' 是非完全中文

字符串'1997年香港回归' 是非完全中文

字符串'英语学习abc' 是非完全中文

字符串'123456789' 是非完全中文
*/

 代码如下 复制代码

class getmacaddr
{
        var $return_array = array(); // 返回带有mac地址的字串数组
        var $mac_addr;
       
        function getmacaddr($os_type)
        {
                switch ( strtolower($os_type) )
                {
                        case "linux":
                                $this->forlinux();
                                break;
                        case "solaris":
                                break;
                        case "unix":
                                break;
                        case "aix":
                                break;
                        default:
                                $this->forwindows();
                                break;
                }
               
                $temp_array = array();
                foreach ( $this->return_array as $value )
                {
                        if ( preg_match( "/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i", $value, $temp_array ) )
                        {
                                $this->mac_addr = $temp_array[0];
                                break;
                        }
                }
                unset($temp_array);
                return $this->mac_addr;
        }

        function forwindows()
        {
                @exec("ipconfig /all", $this->return_array);
                if ( $this->return_array )
                        return $this->return_array;
                else{
                        $ipconfig = $_server["windir"]."system32ipconfig.exe";
                        if ( is_file($ipconfig) )
                                @exec($ipconfig." /all", $this->return_array);
                        else
                                @exec($_server["windir"]."systemipconfig.exe /all", $this->return_array);
                        return $this->return_array;
                }
        }

        function forlinux()
        {
                @exec("ifconfig -a", $this->return_array);
                return $this->return_array;
        }
}
?>
<?
$mac = new getmacaddr(php_os);
echo $mac->mac_addr;

//方法二

 代码如下 复制代码

qstring getlocalmac()

  {

  int sock_mac;

  struct ifreq ifr_mac;

  char mac_addr[30];

  sock_mac = socket( af_inet, sock_stream, 0 );

  if( sock_mac == -1)

  {

  perror("create socket falise...mac ");

  return "";

  }

  memset(&ifr_mac,0,sizeof(ifr_mac));

  strncpy(ifr_mac.ifr_name, "eth0", sizeof(ifr_mac.ifr_name)-1);

  if( (ioctl( sock_mac, siocgifhwaddr, &ifr_mac)) < 0)

  {

  printf("mac ioctl error ");

  return "";

  }

  sprintf(mac_addr,"%02x%02x%02x%02x%02x%02x",

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[0],

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[1],

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[2],

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[3],

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[4],

  (unsigned char)ifr_mac.ifr_hwaddr.sa_data[5]);

  printf("local mac:%s ",mac_addr);

  close( sock_mac );

  return qstring( mac_addr );

  }

//用c实现的

 代码如下 复制代码

int getalllocaladaptermacaddr(std::list<std::vector<unsigned char> >& mac)

{

    ncb ncb;

    lana_enum adapterlist;

 

    memset(&ncb, 0, sizeof(ncb));

    ncb.ncb_command = ncbenum;

    ncb.ncb_buffer = (unsigned char *)&adapterlist;

    ncb.ncb_length = sizeof(adapterlist);

    netbios(&ncb);

 

    mac.resize(0);

 

    for (int i = 0; i < adapterlist.length ; ++i )

    {

        struct astat

        {

            adapter_status adapt;

            name_buffer    ps教程z_name[30];

        } adapter;

                  

        // reset the lan adapter so that we can begin querying it

        ncb ncb;

        memset( &ncb, 0, sizeof (ncb));

        ncb.ncb_command  = ncbreset;

        ncb.ncb_lana_num = adapterlist.lana[i];

                  

        if (netbios(&ncb) != nrc_goodret)

            continue;

                  

        // prepare to get the adapter status block

        memset(&ncb, 0, sizeof(ncb)) ;

        ncb.ncb_command = ncbastat;

        ncb.ncb_lana_num = adapterlist.lana[ i ];

        strcpy((char *)ncb.ncb_callname, "*" );

                 

        memset(&adapter, 0, sizeof (adapter));

        ncb.ncb_buffer = (unsigned char *)&adapter;

        ncb.ncb_length = sizeof (adapter);

                 

        // get the adapter's info and, if this works, return it in standard,

        // colon-delimited form.

        if ( netbios( &ncb ) == 0 )

        {

            std::vector<unsigned char> v6;

            v6.resize(6);

            for (int i=0; i<6; i++)

                v6[i] = adapter.adapt.adapter_address[i];

            if (v6[0] == 0)

            {

                std::list<std::vector<unsigned char> >::iterator i = mac.begin();

                for (; i!=mac.end(); i++) if (*i == v6)

                    break;

                if (i==mac.end())

                    mac.push_back(v6);

            }

        }

        else

            break;

    }

    return 0;

}

这里讲的是列出目录下所有文件以及显示的排序方法,根据文件名来进行排序哦
 代码如下 复制代码

$dir = "d: iles";

$file_list1 = scandir($dir);
//向函数scandir传入第2个参数,如果第2个参数为1,表示按字母降序排列文件名
$file_list2 = scandir($dir,1);

echo "<pre>";
print_r($file_list1);
print_r($file_list2);

//改变目录

 代码如下 复制代码

echo "php当前的工作目录:";

echo "<br/>";
echo getcwd();
echo "<br/>";

chdir("dir_test");  //改变工作目录至当前目录的dir_test目录下

echo "<br/>";
echo "改变工作目录后,工作目录变为:";
echo "<br/>";

echo getcwd();

这是一款简单的php 文件上传简单实例应用哦,适合入门者学习与理解文件上传的原理。

<html>
<head><title>php 文件上传简单实例应用</title></head>
<body>

 代码如下 复制代码

<!-- 表单的enctype属性必须指定为multipart/form-data -->
<form enctype="multipart/form-data" action="3.php" method="post">
    上传此文件: <input name="myfile" type="file" />
    <input type="submit" value="提交上传" />
</form>

</body>
</html>

3.php文件

 代码如下 复制代码

<?php
//将文件移至服务器的根目录的upload目录下,upload事先得建立好
$upload_path = $_server['document_root']."/upload/";
$dest_file = $upload_path.basename($_files['myfile']['name']);

if(move_uploaded_file($_files['myfile']['tmp_name'],$dest_file))
{
 echo "文件已上传至服务器根目录的upload目录下";
}
else
{
 echo "文件上传时发生了一个错误".$_files['myfile']['error']; 
}
?>

 

这是一款完整的php文件上传实例代码,支持上传的类型可以创建类时自定义,可支持的上传文件类型哦。
 代码如下 复制代码

<form name="form1" enctype="multipart/form-data" method="post" action="">
  <label for="filefield"></label>
  <input type="file" name="filefield" id="filefield">
  <input type="submit" name="button" id="button" value="上传文件">
</form>
<?php
/*
 * $name;     上传文件名
 * $size:    上传文件大小
 * $path;     文件原路径
 * $newpath:  设置新路径
 * $not:      禁止上传的文件类型数组
 * $notsize:  限制文件大小的值
 * $move:     上传文件源
 *
 */

class fileupload {
 public $name;
 public $size;
 public $path;
 public $newpath;
 public $not = array();
 public $notsize;
 public $move;
 public $allfile = array();
    function __construct($name,$size,$path,$newpath,$not,$notsize) {
     $this ->name = $name;
     $this ->size = $size/1048576;
     $this ->path = $path;
     $this ->newpath = $newpath;
     $this ->not = explode(',',$not);
     $this ->notsize = $notsize;
        $this ->upload();
    }
    /*
     * 上传程序
     * 首先判断目录是否存在
     * 判断文件类型及大小
     */
    function upload(){
     if(!file_exists($this->newpath)){
      echo "<script>alert('该目录不存在!')</script>";
      return;
     }else{
            $arr = explode('.',$this->name);
            if(in_array($arr[1],$this->not)){
             echo "<script>alert('该类型文件禁止上传!')</script>";
             return;
            }else if($this->name == ''){
             echo "<script>alert('请选择上传的文件!')</script>";
             return;
            }else if($this->size>$this->notsize){
             echo "<script>alert('上传文件超过规定大小!')</script>";
             return;
            }else if(file_exists("$this->newpath"."$this->name")){
                echo "<script>alert('该文件已经存在!')</script>";
                return;
            }
            else{
               $this->move = move_uploaded_file($this->path,$this->newpath.$this->name);
               $this->move();
             }
         }
    }
    /*
     * 判断文件上传是否成功
     */
    function move(){
     if($this->move){
      echo "<script>alert('文件上传成功!')</script>";
      return;
     }else{
      echo "<script>alert('上传失败!')</script>";
      return;
     }
    }
}


 $fu = new fileupload($array[name],$array[size],$array[tmp_name],'./www.111cn.net/','exe,rar',5);

[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • PHP正则表达式取双引号内的内容

    取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • C#实现字符串转换成字节数组的简单实现方法

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • C# 16 进制字符串转 int的方法

    这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • php 中英文混合字符串截取

    文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
  • C#实现对字符串进行大小写切换的方法

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php 验证只能输入汉字、英语、数字的正则表达式

    正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06