返回字符串中的所有单词并去除重复单词

 更新时间:2016年11月25日 15:11  点击:1949

 

 代码如下 复制代码

 function split_en_str($str,$distinct=true)
 {
  preg_match_all('/([a-za-z]+)/',$str,$match);
        if ($distinct == true)
        {
         $match[1] = array_unique($match[1]);
        }
        sort($match[1]);

        return $match[1];
 }

//实例应用

 代码如下 复制代码
$str ='word,word,world,cup';
print_r(split_en_str($str,$distinct=true));

/*
array
(
    [0] => cup
    [1] => word
    [2] => world
)
*/

三款三种常用验证函数 验证邮箱地址格式 验证密码只能为数字和字母的组合 验证用户名是否以字母开头代码哦,这是用户注册时或提交表单时会用的哦。
 代码如下 复制代码
 function is_email($email)
 {
  if (preg_match("/[a-za-z0-9]+@[a-za-z0-9]+.[a-z]{2,4}/",$email,$mail))
  {
      return true;
  }
  else
  {
      return false;
  }
 }

 /**
  * 验证用户名是否以字母开头
  */
 

 代码如下 复制代码
function is_user_name($user)
 {
  if (preg_match("/^[a-za-z]{1}([a-za-z0-9]|[._]){3,19}$/",$user,$username))
  {
      return true;
  }
  else
  {
      return false;
  }
 }

 /**
  * 验证密码只能为数字和字母的组合
  */
 

 代码如下 复制代码
function is_ps教程d($psd)
 {
  if (preg_match("/^(w){4,20}$/",$psd,$password))
  {
      return true;
  }
  else
  {
      return false;
  }
 }
这款文件上传代码是一个超级简单的上传代码,也是没进行过任何安全处理,这款php文件上传代码只适合学习使用哦
 代码如下 复制代码
header("content-type: text/html; charset=utf-8");
?>
<form method="post" action="./uploadaction.php" enctype="multipart/form-data" name="form">
       <input type="file" name="upfile" id="myfile" />
    <input type="submit" name="submit" value="上传" />
</form>

//uploadaction.php

<?php

 代码如下 复制代码
  header("content-type:text/html; charset=utf-8");
   if(!empty($_files))
  {
   $date= date("ymdhis",time());
   $fileinfo=$_files['upfile'];
   foreach($_files['upfile'] as $name=>$value)
    echo $name.'='.$value.'<br>';
   $filesavename='./file/'.$date.$fileinfo['name'];
   move_uploaded_file($fileinfo['tmp_name'],$filesavename);
   echo $fileinfo['tmp_name'].'<br>';
   echo "上传成功<br>";
   echo "文件位置: $filesavename";
  }

frameset里面,也就是里面的frame是来自第三方站点(不同ip或不同域名),那么默认情况下ie会自动禁用这些站点的cookie,也就是在请求某url时在http header里不发送它们的cookie,包括session的cookie。注意,这些站点在response里面设置的cookie还是会被发送到浏览器的。

但象ie 6.0和ie 7.0有个自己的标准.要支持p3p,ie 6的缺省隐私等级设置为"中"——即"阻止没有合同隐私策略的第三方cookie"。而在用户浏览a.php教程时 a.com写入的为第一方cookie,其嵌入的iframe指向b.php.这时b.com写入的就为第三方cookie了,所以它是被ie当在了大门外。

所以,每次当用户提交的cookie提交时,就挂掉了.因为传不到真实的服务器.

好了,不多讲了,直接讲解决方案.

php的程序

可以直接在b网站中写入
<?php
header('p3p: cp="cura adma deva ps教程ao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor"')
?>
这样就能接受第三方的cookie啦。

lighttpd的服务器

server.modules    = ("mod_setenv")

setenv.add-response-header = ( "p3p" => "cp='cura adma deva psao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor'")

apache的服务器

<virtualhost>

header set p3p 'cp="cura adma deva psao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor"'

</virtualhost>

iis的服务器
增加一个网站http头来解决问题;
管理工具——〉选择一个网站——〉属性——〉http头,增加一个http头
然后输入头名:p3p
输入头内容:cp=cao psa our

如果要登陆就如下设置

setcookie('auth_member_string', 0, time()+3600,'/',$cfg['domain']);
 setcookie('auth_member_name',0,time()+3600,'/',$cfg['domain']);
 setcookie('auth_member_realname',0,time()+3600,'/',$cfg['domain']);

登出

setcookie('auth_member_string', 0, time()-1,'/',$cfg['domain']);
 setcookie('auth_member_name',0,time()-1,'/',$cfg['domain']);
 setcookie('auth_member_realname',0,time()-1,'/',$cfg['domain']);

下面来看一个测试实例

我只写一个大概,为了测试的方便,先编辑hosts文件,加入测试域名(c:windowssystem32driversetchosts)

127.0.0.1        www.a.com
127.0.0.1        www.b.com

首先:创建 a_setcookie.php 文件,内容如下:

<?php
//header('p3p: cp="cura adma deva psao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor"');

setcookie("test", $_get['id'], time()+3600, "/", ".a.com");
?>

然后:创建 a_getcookie.php 文件,内容如下:

<?php
var_dump($_cookie);
?>

最后:创建 b_setcookie.php 文件,内容如下:

<script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>

----------------------------

三个文件创建完毕后,我们通过浏览器依次访问:

http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php

我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。

然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:

<?php 
header('p3p: cp="cura adma deva psao psdo our bus uni pur int dem sta pre com nav otc noi dsp cor"'); 

setcookie("test", $_get['id'], time()+3600, "/", ".a.com"); 
?>

再次通过浏览器依次访问:

http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php

这次,你会发现在访问b.com域的时候,我们设置了a.com域的cookie值。

末了补充一句,似乎只有ie对跨域访问cookie限制比较严格,上述代码在firefox下测试,即使不发送p3p头信息,也能成功

php获取ip地址详细信息我们以前都是只提供简单的如果getip一样的函数去获取用户IP地址,下面这代码是获取用户IP地址的详细详细信息,如:是来自哪里。
 代码如下 复制代码

function getip ()
        {
                if (getenv('http_client_ip')) {
                        $ip = getenv('http_client_ip');
                } else if (getenv('http_x_forwarded_for')) {
                        $ip = getenv('http_x_forwarded_for');
                } else if (getenv('remote_addr')) {
                        $ip = getenv('remote_addr');
                } else {
                        $ip = $_server['remote_addr'];
                }
                return $ip;
        }

 

function getipaddres ($ip = '')
        {
                if($ip == ''){
                        $ip = getip();
                }
                if($ip == '127.0.0.1'){
                        return $ip_addres = '本地机器';
                }
                $recordlength = 17+22+13+47+12+1;
                $ret = ereg('^([0-9]+).([0-9]+).([0-9]+).([0-9]+)$', $ip, $ips教程ection);
                if($ret == false){$ip_addres = 'ip地址有错';}
                for($i = 1; $i <= 4; $i ++){
                        if($ipsection[$i] > 255){
                                $ip_addres = 'ip地址有错';
                        } else {
                                $thisip .= sprintf('%03.0f', $ipsection[$i]). (($i<4) ? '.' : '');
                        }
                }
                $fp= fopen($obj['rootdir'].'data/ip.txt', 'rb');
                if($fp == null){
                        $ip_addres = 'ip记录文件打开出错';
                }
                fseek($fp, 0, seek_end);
                $datafieldbegin = 0xc2;
                $recordcount = floor((ftell($fp)-$datafieldbegin)/$recordlength);
                if($recordcount <= 1){
                        $ip_addres = 'ip记录文件打开出错';
                } else {
                        $rangb = 0;
                        $range = $recordcount;
                        while($rangb<$range-1){
                                $recno = floor(($rangb+$range)/2);
                                fseek($fp,$recno*$recordlength+$datafieldbegin, seek_set);
                                $buf = fread($fp, $recordlength);
                                if(strlen($buf) == 0){
                                        return false;
                                }
                                $startip = (substr($buf, 0, 17));
                                $endip = trim(substr($buf, 17, 22));
                                $country = trim(substr($buf, 17+22, 13));
                                $local = trim(substr($buf, 17+22+13, 47));
                                if (strcmp($thisip, $startip) >= 0 && strcmp($thisip, $endip)<=0){
                                        break;
                                }
                                if(strcmp($thisip, $startip) > 0){
                                        $rangb = $recno;
                                } else {
                                        $range = $recno;
                                }
                        }
                        if(!($rangb < $range - 1)){
                                $ip_addres= '未知地址!';
                        } else {
                                $ip_addres = $country;
                                $ip_addres .= $local;
                        }
                }
                fclose($fp);
                return $ip_addres;
        }

// 调用 方法
echo getipaddres();

[!--infotagslink--]

相关文章

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

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

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

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

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • mybatis-plus 返回部分字段的解决方式

    这篇文章主要介绍了mybatis-plus 返回部分字段的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-02
  • php字符串按照单词逐个进行反转的方法

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

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

    这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • php 中英文混合字符串截取

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

    这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#获取字符串后几位数的方法

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

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • C#判断一个字符串是否是数字或者含有某个数字的方法

    这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25