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


Posted in PHP onJune 07, 2013

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/ )这里是忽略"/"的

PHP 相关文章推荐
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
PHP版微信公众平台红包API
Apr 02 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
yii框架使用分页的方法分析
Jul 25 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
解析php中call_user_func_array的作用
Jun 07 #PHP
简单的cookie计数器实现源码
Jun 07 #PHP
深入eAccelerator与memcached的区别详解
Jun 06 #PHP
基于PHP开发中的安全防范知识详解
Jun 06 #PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 #PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 #PHP
强烈声明: 不要使用(include/require)_once
Jun 06 #PHP
You might like
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
php微信公众号开发之简答题
2018/10/20 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
Js+XML 操作
2006/09/20 Javascript
学习jquery之一
2007/04/27 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
高一历史教学反思
2014/01/13 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
2015年安全月活动总结
2015/03/26 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
农村婚庆主持词
2015/06/29 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
Golang获取List列表元素的四种方式
2022/04/20 Golang