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

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 '<hr>';
echo strtok("\n\t"); //当第二次返回:an example
echo '<hr>';
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:]/]",
"<a href=\"\\0\">\\0</a>", '这是百度http://www.baidu.com网站。');
preg_replace:过滤
$search = array ("'<script[^>]*?>.*?</script>'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",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
echo $text = preg_replace ($search, $replace, '<b>test</b><script>alert("adfasdf");</script>');

preg_quote:
//转义正则表达式字符,把每个要加\都加上\,符合正则式。
echo preg_quote('$40 for a g3/400','/');//返回:\$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 "<br>";
similar_text($a,$b,$similar);
echo $similar."%"; //输出相同字符的百分比

soundex:
//比较两个单词的发音
$a = "ddHello6";
$b = "hello3";
echo soundex($a)."<br>";
echo soundex($b)."<br>";
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<count($arr);$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,"/")+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,"/"));返回:Array ( [0] => I/ [1] => love/ [2] => you/ )这里是忽略"/"的

(0)

相关推荐

  • PHP开发中常用的字符串操作函数

    1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

  • php 常用字符串函数总结

    1.格式化输出 chop 是rtrim()的别名: ltrim() trim() nl2br()将\n转换成<br> print,echo,printf(),sprintf(): echo()不是函数,print()是函数,有返回值,boolen,false,true: printf()格式化输出 --函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的.如: $name="hunte"; $age=25; printf("my name is %

  • 探讨各种PHP字符串函数的总结分析

    PHP字符串函数包括查找字符位置函数:提取子字符函数:替换字符串:字符长度:比较字符函数:分割成数组字符:去除空格等等. PHP语言中的字符串函数也是一个比较易懂的知识.今天我们就为大家总结了将近12种PHP字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的PHP知识库. 1查找字符位置函数:   strpos($str,search,[int]):查找search在$str中的第一次位置从int开始: stripos($str,search,[int]):函数返回字符串在另一个字符串中第一

  • PHP数组操作汇总 php数组的使用技巧

    数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之. 1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组: 复制代码 代码如下: <?php $number = array(1,3,5,7,9); //定义空数组 $result = array(); $color =array("red","blue","green"); //自定义键值 $language

  • 基于php常用函数总结(数组,字符串,时间,文件操作)

    数组:[重点1]implode(分隔,arr) 把数组值数据按指定字符连接起来例如:$arr=array('1','2','3','4');$str=implode('-',$arr);explode([分隔],arr)按指定规则对一个字符串进行分割,返回值为数组 别名joinarray_merge()合并一个或多个数组array_combine(array keys, array values) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值例如:$a = array('gre

  • 基于PHP常用字符串的总结(待续)

    1.分割与合并implode:echo implode(",", array('lastname', 'email', 'phone'));//数组转成字符串 explode:print_r(explode(",", 'lastname,email,phone'));//字符串转成数组 split:print_r(split("[/.-]","2008-9.12"));//以/或.或-任一符号切成数组 str_split:pr

  • 基于PHP常用文件函数和目录函数整理

    一.常用文件函数库 1.basename(); -- 返回路径中的文件名部分. string basename ( string $path [, string $suffix ] ) //给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名. 参数:path 一个路径.在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符.在其它环境下是斜线(/) suffix 如果文件名是以 suffix 结束的,那这一部分也会被去掉. 返回值:返回 path 的基本的文件名.

  • 基于Cookie常用操作以及属性介绍

    概述 最近项目要用到cookie存储部分用户信息;研究了一下做一下分享 Cookie 是服务器保存在浏览器的一小段文本信息,每个 Cookie 的大小一般不能超过4KB.浏览器每次向服务器发出请求,就会自动附上这段信息. 设置cookie存储 document.cookie = 'userName=fengkaicahng'; 注意 设置cookie一次只能存储一条 cookie可以多次设置 key相同不会重新赋值而是会新建一条cookie 读取cookie var allCookies = d

  • Go语言常用字符串处理方法实例汇总

    本文实例汇总了Go语言常用字符串处理方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "fmt"     "strings"     //"unicode/utf8" ) func main() {     fmt.Println("查找子串是否在指定的字符串中")     fmt.Println(" Contains 函数的用法")    

  • C++常用字符串分割方法实例汇总

    本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考.具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全

  • java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    本文实例讲述了java基于正则提取字符串中的数字功能.分享给大家供大家参考,具体如下: 使用Java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pattern = Pattern.compile("(13|14|15|18)\\d{9}"); Matcher matcher = pattern.matcher(smsBody); while (mat

  • 浅谈常用字符串与集合类转换的工具类

    在项目中,我们经常需要把接收到的字符串转换成对应的集合类保存,或者把集合类转换成字符串以方便传输,这个工具类中封装了几个常用的方法,对于这种转换需求十分方便. import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Properties; import java.u

  • 基于Java中字符串内存位置详解

    前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放到哪里的,这个应该是放到堆里面的,后来又问到String的引用是放在什么地方的,当时傻逼的说也是放在堆里面的,现在总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,

  • php常用字符串比较函数实例汇总

    本文实例汇总了php常用字符串比较函数.分享给大家供大家参考.具体分析如下: substr_compare() 函数从指定的开始长度比较两个字符串,该函数返回: 0 - 如果两字符串相等,<0 - 如果 string1 (从开始位置)小于 string2,>0 - 如果 string1 (从开始位置)大于 string2. 语法:substr_compare(string1,string2,startpos,length,case),代码如下: 复制代码 代码如下: $str1="h

  • php常用字符串String函数实例总结【转换,替换,计算,截取,加密】

    本文实例总结了php常用字符串String函数.分享给大家供大家参考,具体如下: nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $result; /**结果 cat isn't dog */ rtrim 功能:清除右边的空白 <?php $str = "Hello world "; echo strlen($str)."

随机推荐