• 技术文章 >后端开发 >php教程

    基于PHP常用字符串的总结(待续)_php技巧

    2016-05-17 09:02:54原创415
    1.分割与合并
    implode:
    echo implode(",", array('lastname', 'email', 'phone'));//数组转成字符串

    explode:
    print_r(explode(",", 'lastname,email,phone'));//字符串转成数组

    split:
    print_r(split("[/.-]","2008-9.12"));//以/或.或-任一符号切成数组

    str_split:
    print_r(str_split("Hello Friend",1));//将字符串切开

    preg_split:
    //正则分割
    //$ops = preg_split("{[+*/-]}","3+5*9/2");
    //print_r($ops);//返回:Array ( [0] => 3 [1] => 5 [2] => 9 [3] => 2 )

    http_build_query:
    //生成 url-encoded 之后的请求字符串
    $data = array('localhost'=>'aa',
    'user'=>'bb',
    'password'=>'cc');
    echo http_build_query($data);//返回:localhost=aa&user=bb&password=cc

    strtok:
    //将字符串切成小段
    $string = "This is\tan example\nstring";
    echo strtok($string,"\n\t");//返回:This is
    echo '
    ';
    echo strtok("\n\t"); //当第二次返回:an example
    echo '
    ';
    echo strtok("\n\t"); //当第三次返回:string
    2.查找和替换
    字符串中很多是 r:取最后的,i:不区分大小写的
    echo $pos = strpos('abcdef abcdaef', 'a'); // 字母a第一次出现的位置,区分大小写
    echo $pos = strrpos('abcdef abcdeaf', 'a'); // 字母a最后一次出现的位置,区分大小写
    stripos:不区分大小写
    strripos:不区分大小写
    echo strstr('user@exa@mple.com', '@');//返回:@exa@mple.com
    stristr:不区分大小写
    echo strchr('user@exa@mple.com', '@');//返回:@exa@mple.com
    strrchr:则返回:@mple.com,

    preg_grep:
    //返回与模式匹配的数组单元
    $food = preg_grep("/^p/",array("apple","orange","pip","banana"));
    print_r($food); //返回:Array ( [2] => pip )

    strtr:
    //以指定的数组替换找到的字符串
    $arr = array("www"=>"ftp","yahoo"=>"baidu");
    echo strtr("www.yahoo.com",$arr);//返回:ftp.baidu.com
    echo strtr("www.yahoo.com","wo","sx");//返回:sss.yahxx.cxm 翻译字符串 把所有w换成了s把所有的o换成了x

    strspn:
    //找出比对到的最初部份的长度
    echo strspn("abcdefg","1234567890");//返回:0
    //找出没有比对到的最初部份的长度
    echo strcspn("abcdefg","1234567890");//返回:7


    3.正则
    preg_match:
    //返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。
    if (preg_match ("/php/i", "PhP is the web scripting language of choice."))
    echo "存在";
    else
    echo "不存在";

    preg_match_all:
    //则相反,会一直搜索到 subject 的结尾处。
    preg_match_all("/\(?(\d{3})?\)?(?(1)[\-\s])\d{3}-\d{4}/x",
    "Call 555-1212 or 1-800-555-1212", $phones);
    print_r($phones[0]);//取得所有的电话号码

    ereg_replace:
    //URL 替换为超连接
    echo ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
    "\\0", '这是百度http://www.baidu.com网站。');
    preg_replace:过滤
    $search = array ("']*?>.*?'si", // 去掉 javascript
    "'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记
    "'([\r\n])[\s]+'", // 去掉空白字符
    "'&(quot|#34);'i", // 替换 HTML 实体
    "'&(amp|#38);'i",
    "'&(lt|#60);'i",
    "'&(gt|#62);'i",
    "'&(nbsp|#160);'i",
    "'&(iexcl|#161);'i",
    "'&(cent|#162);'i",
    "'&(pound|#163);'i",
    "'&(copy|#169);'i",
    "'&#(\d+);'e"); // 作为 PHP 代码运行
    $replace = array ("",
    "",
    "\\1",
    "//m.sbmmt.com/m/article/\"",
    "&",
    "<",
    ">",
    " ",
    chr(161),
    chr(162),
    chr(163),
    chr(169),
    "chr(\\1)");
    echo $text = preg_replace ($search, $replace, 'test');

    preg_quote:
    //转义正则表达式字符,把每个要加都加上,符合正则式。
    echo preg_quote('$40 for a g3/400','//m.sbmmt.com/m/');//返回:$40 for a g3\/400

    sql_regcase:
    //产生用于不区分大小的匹配的正则表达式

    echo sql_regcase("Foo-bar.a"); //返回:[Ff][Oo][Oo]-[Bb][Aa][Rr].[Aa]

    4.URL 编码处理函数
    urlencode:
    echo $str = urlencode('http://www.baidu.com?key=百度');//编码
    echo urldecode($str);//解码

    rawurlencode:
    //百分号(%)后跟两位十六进制数的序列都将被替换成原义字符
    //注: rawurldecode() 不会把加号('+')解码为空格,而 urldecode() 可以。
    echo $str = rawurlencode('http://www.baidu.com?key=百度');//编码
    echo rawurldecode($str);

    parse_url:
    //解析 URL,返回其组成部分
    print_r(parse_url("http://username:password@hostname/path?arg=value#anchor"));

    parse_str:
    //是将URL解析成变量
    $str = "id=1&name=2";
    parse_str($str);
    echo $name;
    //有第二个参数时,把值存到了数组中
    $str = "id=1&name=2";
    parse_str($str,$array);
    print_r($array);

    5.时间函数
    mktime:
    //把日期转换成时间戳
    echo time()-mktime(0,0,0,9,17,2008);//返回:当前时间和2008年9月17日的时间差。
    echo date('Y-m-d H:i:s');//当前的日期和时间

    getdate:
    //取得日期/时间信息
    print_r(getdate(time()));
    6.比较
    similar_text:
    //比较两个字符串的相似度
    $a = "Hellohhh6";
    $b = "hello3hh";
    echo similar_text($a,$b);//返回:6比较对应的位置有多少相同的字符
    echo "
    ";
    similar_text($a,$b,$similar);
    echo $similar."%"; //输出相同字符的百分比

    soundex:
    //比较两个单词的发音
    $a = "ddHello6";
    $b = "hello3";
    echo soundex($a)."
    ";
    echo soundex($b)."
    ";
    if(soundex($a)==soundex($b)) echo "发音相同";else echo '不同';

    strnatcmp():
    //按自然排序法时进行字符串比较
    $arr = array("a1.jpg","a2.jpg","a3.jpg","a4.jpg");
    $max = $arr[0];
    for($i=0;$i{
    if(strnatcmp($arr[$i],$max)>0)
    $max = $arr[$i];
    }
    echo $max;//返回:a4.jpg

    strcmp:
    //区分大小写,按字节进行字符串比较,第一个字符串大于第二个字符串时返回:1,等于返回:0,小于返回:-1
    echo strcmp('abc','Abc');
    strcasecmp:
    //返回两个字符串的相差数
    echo strcasecmp('wbc','bbc');//返回:21
    strncmp:
    //指定字元数目的字符串比对,此函数和相似,不同的是,你可以指定要用来比对的字符串的字元数目。如果任何一个字符串比 len还短时,则会使用那个字符串的长度来比对
    echo strncmp("adrdvark","aardwolf",4);//返回:1

    7.排序
    sort:
    //将数组的值由a-z重排
    $a = array("1","s","3","n","5");//返回:1,3,5,n,s
    sort($a);//排序print_r($a);


    8.其他
    str_pad:
    //填塞字符串成为指定的长度,pad_type可以是STR_PAD_RIGHT、STR_PAD_LEFT或是STR_PAD_BOTH
    echo str_pad("www.yahoo.com",17,"_",STR_PAD_BOTH);//字符串的填补函数__www.yahoo.com__
    strlen("aaa");//求数组的长度返回:3
    strrev();// 字符串的颠倒
    strtolower();//转换成小写
    strtoupper();//转换成大写
    str_replace()将字符串替换,区分大小写str_ireplace()不区分大小写
    ucfirst();//将第一个字母转换成大写
    ucwords();//将每个单词的第一个字母转换成大写
    echo join("&",array('wo', 'men', 'shi'));//字符串的连合 返回:wo&men&shi用&连合

    count_chars:
    //传回在字符串中使用的字元的资讯
    print_r(count_chars("Hellohhh6",0));//返回字符串中每个字节值(0~255)出现的次数作为值的数组。0列出所有的。1只列出现次数大于0的。2只列出现次数等于0的。3返回所使用的字节值组成的字符串。如:6Hehlo。4返回所未使用的字节值组成的字符串
    str_replace:
    str_replace("yahoo","baidu","www.yahoo.com");
    $c = "www.yahoo.com";
    $arr = array("yahoo","com");
    echo str_replace($arr,"baidu",$c);//返回:www.baidu.baidu

    $c = "www.yahoo.com";
    $arr1 = array("www","yahoo","com");
    $arr2 = array("ftp","baidu","net");
    echo str_replace($arr1,$arr2,$c);//返回:ftp.baidu.net

    substr($a,2,2);//取子字符串
    echo substr_count("This is a test", "is");//统计子字符串的出现的个数
    substr_replace();//替换子字符串

    $url = "http://localhost/zheng_ze_biao_da/youxiang.php";
    echo substr($url,strrpos($url,"//m.sbmmt.com/m/")+1);//返回:youxiang.php用于返回文件名

    str_word_count:
    $a = "I/ love/ you/";
    echo str_word_count($a);//返回:3 统计字符串的单词的个数
    print_r(str_word_count($a,1));//返回:Array ( [0] => I [1] => love [2] => you )
    //print_r(str_word_count($a,2));//返回:Array ( [0] => I [3] => love [9] => you )
    //print_r(str_word_count($a,1,"//m.sbmmt.com/m/"));返回:Array ( [0] => I/ [1] => love/ [2] => you/ )这里是忽略"//m.sbmmt.com/m/"的
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 字符串
    上一篇:深入密码加salt原理的分析_php技巧 下一篇:深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表_php技巧
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 怎样利用Dockerfile文件部署PHP项目• 什么是接口?如何在PHP中使用接口编写优雅的代码?• php7.2怎么连接oracle数据库?OCI8扩展的安装• php将csv文件导入到mysql数据库的方法,_PHP教程• smarty中post用法实例,smartypost实例_PHP教程
    1/1

    PHP中文网