澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

澳门新浦京娱乐场网站:PHP中一些可以替代正则

阅读目录

0x01:依照预约义的字符对字符串进行词法深入分析

PHP语言是贰个功用强盛的嵌入式HTML脚本语言,它的易用性让不菲工程师选拔使用。PHP判断字符串的包蕴,能够应用PHP的放置函数strstr,strpos,stristr间接实行推断.也得以透过explode函数的法力写一个剖断函数。

1.分割与统一
implode:
echo implode(",", array('lastname', 'email', 'phone'));//数组转成字符串

    显明字符串长度
    比较字符串
    分割连接反转
    html与字符串相互转化
    填充和剔除字符串
    总结字符和单词个数
    查找替换截取
    大小写管理

复制代码 代码如下:

追究怎么着完毕PHP推断字符串是不是为IP
深远商量PHP自动获取重要词的具体方法
PHP字符串函数的分类总括
分享PHP函数require()的具体接纳本事
PHP重定向网页的切切实实贯彻格局介绍
下边介绍PHP决断字符串的带有的现实运用办法:

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

php内置了九十七个字符串函数(除了基石钟山则表达式的函数,正则表达式在那不在切磋范围),能够管理字符串中能境遇的每叁个方面内容,本文对常用字符串函数举办轻易的下结论,主要包括以下8有些:1.规定字符串长度、2.相比字符串、3.分割连接反转、4.html与字符串相互转化、5.填充和剔除字符串、6.总计字符和单词个数、7.查找替换截取、8.大小写管理。
回去目录
规定字符串长度
strlen函数和mb_strlen函数,前面一个需求敞开mbstring扩大

<?php
/*
 * 在拍卖多量新闻时,正则表明式函数会使速度大幅度减慢。应当在需求动用正则表达式深入分析比较复杂的字符串时才具运用这一个函数。假如要剖析简单来表达式,仍可以够运用比比较多能够鲜明加速管理进程的预约义函数。
 */

  1. strstr: 重临三个从被推断字符最初到停止的字符串,若无再次回到值,则不分包

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

<?php
    header('content-type:text/html;charset=utf-8');
    $str = 'abcdef';
    echo strlen($str); // 6
    echo "<br/>";
    $str = ' ab cd ';
    echo mb_strlen($str); // 7
    echo "<br/>";
    //strlen 是计量字符串"字节"长度
    //mb_strlen,是依照编码,总结字符串的"字符"个数.

/*
 * 遵照预订义的字符对字符串进行词法解析
 * strtok()函数依据预订义的字符列表来解析字符串。其格局为:
 * string strtok(string str,string tokens)
 * strtok()函数,必得接二连三调用那些函数,技巧完全的对四个字符串举行词法解析;每趟调用该函数只是对字符串的下一部分做词法解析。不过,str参数只需求内定一遍,因为函数会追踪str中的地方,知道完全对str完成了词法深入分析,只怕钦定了心得str参数。
 * 如上面包车型地铁事例所示:
 */
$info="lv chen yang|Hello:world&757104454@qq.com";
//定义界定符,包蕴(|)(:)( )(&)
$tokens="|:& ";
$tokened=strtok($info, $tokens);
while ($tokened)
{
 echo "Element:$tokened<br/>";
 //一而再调用strtok()函数,达成对任何字符串的词法深入分析
 $tokened=strtok($tokens);
}
?>

代码如下:

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

    $str='中国';
    echo "字节长度是".strlen($str);//在 UTF-8编码下,一个中华夏族民共和国字占3个字节 在gbk中两个汉字占2个字节
    echo "<br/>";
    echo "字符长度是".mb_strlen($str,'utf-8');
 ?>

0x02:依据预订义的定界符分解字符串

 代码如下

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

回到目录
相比字符串
strcmp函数、strcasecmp函数、strspn函数、strcspn函数

复制代码 代码如下:

< ?php
/*如手册上的比喻*/
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain;
// prints @example.com
?>

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

<?php
    $pwd="userpwd";
    $pwd2="Userpwd";
    //区分大小写
    if (strcmp($pwd, $pwd2) !=0) {
        echo "password do not match";
    } else{
        echo "password match";
    }

<?php
/*
 * 依据预约义的定界符分解字符串:explode()函数
 * 次函数将字符串str分成子串数组,其款式为:
 * array explode(string separator,string str [, int limit])
 * 原字符串被遵照separator钦赐的字符串分割为分裂的成分。元素的多少得以因此可选的参数limit来限制。能够结合explode()/sizeof()和strip_tags()来鲜明给定文本块中单词的总额
 * 如下所示:
 */
$summary="
   In the latest installment of the ongoing Developer.com PHP series.
   I discuss the many improvements and addtions to
   <a href="http:www.php.com">PHP</a> object-oriented architecture.
   ";
echo "<br/>";
$words=explode(' ', strip_tags($summary));
echo "This sentence's lenght is:".sizeof($words);
/*
 * explode()函数始终比preg_split、spilt()和spliti()快得多。因而,在没有必要选择正则表明式时,必定要使用那个函数。
 */
?>

  1. stristr: 它和strstr的选拔办法完全同样.独一的区分是stristr不区分大小写.

  2. strpos: 重临boolean值.FALSE和TRUE不用多说.用 “===”举行推断.strpos在实施进程上都比上述八个函数快,别的strpos有二个参数钦赐推断的任务,不过默认为空.意思是决断一切字符串.劣势是对汉语的支撑不佳.

strtok:
//将字符串切成小段
$string = "This istan examplenstring";
echo strtok($string,"nt");//返回:This is
echo '<hr>';
echo strtok("nt"); //当首次回到:an example
echo '<hr>';
echo strtok("nt"); //当第叁回回到: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,

    $email1="www.baidu.com";
    $email2="WWW.BAIDU.COM";
    //不区分大小写
    if (!strcasecmp($email1, $email2)) {
        echo "ok",'<br>';
    }
    //求四个字符串同样的部分
    $password="1233345";
    if (strspn($password,"1234567890")==strlen($password)) {
        echo "the password connot consist solely of numbers";
    }
    //
    $password="a12345";
    if (strcspn($password, "1234567890")==0) {
        echo "the password connot consist solely of numbers";
    }
    
 ?>

0x03:将数组调换到字符串

PHP决断字符串的含有代码如下:

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

回去目录
分割连接反转
str_split函数、split函数、explode函数和implode函数

复制代码 代码如下:

 代码如下

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

<?php
header('content-type:text/html;charset=utf-8');
    $str = "Hello Friend";

<?php
/*
 * 将数组调换到字符串
 * explode()函数能够依照界定字符将字符串调换为对应的数组,不过足以因此implode()函数将数组转变为明显的范围字符为界限的字符串
 * 其款式为:
 * string implode(string delimiter,array pieces)
 * 如下所示:
 */
$citys=array("Chengdu","Chongqing","Beijing","Shanghai","Guangzhou");
$citystring=implode("|", $citys);
echo $citystring;
?>

$str= ‘abc’;
$needle= ‘a’;
$pos = strpos($str, $needle);

strspn:
//搜索比对到的开始时代部份的尺寸
echo strspn("abcdefg","1234567890");//返回:0
//找寻从未比对到的先前时代部份的长度
echo strcspn("abcdefg","1234567890");//返回:7

    $arr1 = str_split($str);
    print_r($arr1);

0x04:深入分析复杂的字符串

  1. 用explode举行判断

3.正则
preg_match:
//再次来到 pattern 所相称的次数。要么是 0 次(没有相配)或 1 次,因为 preg_match() 在第三遍相称之后将结束搜索。
if (preg_match ("/php/i", "PhP is the web scripting language of choice."))
echo "存在";
else
echo "不存在";

    $arr2 = str_split($str, 3);
    print_r($arr2);

复制代码 代码如下:

PHP推断字符串的带有代码如下:

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]);//取得具备的电话号码

    $str = 'abc,中国,美国,日本';
    // explode,是基于钦命的分割符,把字符串拆成数组.
    $arr = explode(',',$str);
    print_r($arr);
    // implode,是依据钦点的连接符,把数组再拼接成字符串
    $arr = explode(',',$str);
    echo implode('~',$arr),'<br />';
    // 你可以只传叁个数组做参数,不钦赐连接符,
    // 那样,将把数组单元一贯拼接起来
    echo implode($arr);

<?php
/*
 * 分析复杂的字符串
 * strpos()函数在字符串中以界别轻重缓急写的主意找到substr第三遍出现的职位,其款式为
 * int strpos(string str,string substr [,int offset])
 * 可选参数offset钦赐起头搜索的职位。如若substr不在str中,则strpos()再次来到False。可选参数分明strpos()从何地开首研究。
 * 以下例子将鲜明第一遍访问index.html的日子戳:
 */
$substr="index.html";
$log=<<<logfile
192.168.1.1:/www/htdocs/index.html:[2013/06/26:13:25:10]
192.168.1.2:/www/htdocs/index.html:[2013/06/26:13:27:16]
192.168.1.3:/www/htdocs/index.html:[2013/06/26:13:28:45]
logfile;
echo "<br/>";
//$substr在log中第三回出现的地点是怎么
$pos=strpos($log, $substr);
//查找行截至的数值地方
$pos1=strpos($log,"n",$pos);
//总括时间戳的开首
$pos=$pos strlen($substr) 1;
//检索时间戳
$timestamp=substr($log, $pos,$pos1-$pos);
echo "The file index.html was first accessed on: $timestamp<br/>";
/*
 * 函数stripos()和函数strpos()函数用法同样,独一的界别是stripos()不区分轻重缓急写。
 */
?>

 代码如下

ereg_replace:
//U奔驰G级L 替换为超连接
echo ereg_replace("[[:alpha:]] ://[^<>[:space:]] [[:alnum:]/]",
"<a href="\0">\0</a>", '那是百度');
preg_replace:过滤
$search = array ("'<script[^>]*?>.*?</script>'si",  // 去掉 javascript
"'<[/!]*?[^<>]*?>'si",           // 去掉 HTML 标记
"'([rn])[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>');

 ?>

0x05:找到字符串最后壹回出现的岗位

function checkstr($str){
$needle = “a”;//剖断是不是含有a这些字符
$tmparray = explode($needle,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}

preg_quote:
//转义正则表明式字符,把种种要加都加上,相符正则式。
echo preg_quote('$40 for a g3/400','/');//返回:$40 for a g3/400

回去目录
html与字符串互相转化
htmlspecialchars函数、strip_tags函数、get_html_translation_table函数和addcslashes函数和htmlentities函数

复制代码 代码如下:

上述便是PHP剖断字符串的含有的现实性代码示例。

sql_regcase:
//发生用于不区分轻重缓急的相配的正则表达式

<?php

<?php
/*
 * 找到字符串中最终三回出现的职位
 * strrpos()函数寻找字符串的最终出现的职位,再次回到它的职位(数值序号)其款式为:
 * int strrpos(string str,char substr [,offset])
 * 可选参数offset分明strrpos()函数的早先找出地点。加入希望收缩冗长的新闻总结,
 * 截取总计中的有些部分,并用简易号代替所截去的一些。可是,并不是轻便的将总括鲜明的剪为所需的尺寸,
 * 你只怕希望以一种对顾客本身的艺术实行分割,截取到与等第长度最临近的单词末尾。
 * 如下例子所示
 */
$limit=100;
$summary="In the latest installment of the ongoing Developer.com PHP series.
   I discuss the many improvements and addtions to
   <a href="http:www.php.com">PHP</a> object-oriented architecture. ";
if(strlen($summary)>$limit)
 $summary=substr($summary, 0,strrpos(substr($summary, 0,$limit)," "))."...";
echo  $summary;
?>

去除字符串首尾处的空白字符可能大肆字符 - trim - 再次来到去掉后的字符串

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

    $str = "hello ', world";
    echo $str,'<br />';
    echo $str= addslashes($str),'<br />';
    echo stripslashes($str),'<br />';
    $str = '<ab>';
    echo $str,'<br />';
    echo htmlspecialchars($str);
    echo "</br>";
    $str="Email <a href='admin@qq.com'>example@qq.com</a>";
    echo strip_tags($str);

0x06:用其他三个字符串替换字符串的具有实例

 代码如下

4.UEscortL 编码管理函数
urlencode:
echo $str = urlencode('
echo urldecode($str);//解码

 ?>

复制代码 代码如下:

/* 格式:trim(字符串,'要去掉的特殊字符能够是七个') */ 
$str=trim('     admin ');  
echo $str; // admin 两侧无空格 
 
echo $str=trim(' admin ********','* '); // admin 
echo strlen($str); // 5 通过长度获知字符有没有被去掉 

rawurlencode:
//百分号(%)后跟两位十六进制数的行列都将被替换到原义字符
//注: rawurldecode() 不会把加号(' ')解码为空格,而 urldecode() 能够。
echo $str = rawurlencode('
echo rawurldecode($str);

重临目录
填充和剔除字符串
trim函数、ltrim函数、rtrim函数、str_pad函数、chunk_split函数

<?php
/*
 * 用别的一个字符串替换字符串的装有实例
 * str_replace()函数以界别轻重缓急写的主意用其他二个字符串魔幻有些字符串的全部实例。其款式为:
 * mixed str_replace(string occurrence, mixed replacement, mixed str [,int count])
 * 如若str中尚无找到occurrence,则str保持不改变,假若定义了可选参数count,则只替换str中count个currence。
 * 此函数很合乎对电动获取电子邮箱地址的主次隐敝电子右键地址,如下所示:
 */
$email="lvchenyang@live.cn";
$email=str_replace("@", "(at)", $email);
echo "<br/>".$email;
?>

             
删除字符串侧边的空白字符或然任性字符 - rtrim - 重临去掉后的字符串

parse_url:
//深入分析 U帕杰罗L,重临其组成都部队分
print_r(parse_url(""));

<?php
    $str = '12345678';
    echo chunk_split($str,3,',');
    echo "<br>";
    $text   = "ttThese are a few words :) ...  ";
    echo trim($text);
    echo "<br>";
    echo ltrim($text,'t'),'<br>';
    echo rtrim($text,'r'),'<br>';
    echo str_pad('apple', 6)."is good.";
 ?>

0x07:获取字符串的一有个别

 代码如下

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

回到目录
总计字符和单词个数
count_chars函数和str_word_count

复制代码 代码如下:

/* 格式:rtrim(字符串,'要去掉的特殊字符能够是七个') */ 
$str=rtrim('     admin ');  
echo $str; //'     admin' 侧边无空格 
 
echo $str=rtrim(' admin ********','* '); // admin 
echo strlen($str); // 10 通过长度获悉字符有未有被去掉 

5.年华函数
mktime:
//把日子转变来时间戳
echo time()-mktime(0,0,0,9,17,二零零六);//再次回到:当前时刻和2010年12月三十七日的年月差。
echo date('Y-m-d H:i:s');//当前的日子和岁月

<?php
    $data = "Two Ts and one F.";

<?php
/*
 * 获取字符串的一有个别
 * strstr()函数再次回到字符串中从预约义的字符串的率先个冒出开端的盈余部分(满含occurrence那么些字符串)。其情势为:
 * string strstr(string str,string occurrence[,bool fefore_needle])
 * 可选参数before_needle会退换strstr()的一言一动,使函数重临字符串在首先个出先以前的一对。
 * 上面包车型地铁事例是赢得右键中的域名,结合ltrim()函数
 */
$url="lvchenyang@live.cn";
echo "<br/>".ltrim(strstr($url, "@"),"@");
?>

             
除去字符串侧面的空白字符或许大肆字符 - chop - chop是rtrim的别称

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."%"; //输出一样字符的比重

    foreach (count_chars($data, 1) as $i => $val) {
       echo "There were $val instance(s) of "" , chr($i) , "" in the string.n";
    }

0x08:根据预约义的便利重临字符串的一局部

 代码如下

soundex:
//比相当多个单词的失声
$a = "ddHello6";
$b = "hello3";
echo soundex($a)."<br>";
echo soundex($b)."<br>";
if(soundex($a)==soundex($b)) echo "发音一样";else echo '不一致';

    echo "<hr>";
    $str = "Hello fri3nd, you're looking good today!";

复制代码 代码如下:

/* 格式:chop(字符串,'要去掉的特殊字符能够是四个') */ 
$str=chop('     admin ');  
echo $str; //'     admin' 左边无空格 
 
echo $str=chop(' admin ********','* '); // admin 
echo strlen($str); // 10 通过长度获悉字符有未有被去掉 

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

    print_r(str_word_count($str, 1));

<?php
/*
 * substr()函数再次回到字符串中位居start和start length之间的局地,其款式为:
 * string substr(string str,int start [,int length])
 * 若无一点名的可选参数,则赶回从start到str末尾的字符串
 * 如下所示
 */
$str="lvchenyang";
echo "<br/>".substr($str, 2,4);
//output: chen
?>

             
删除字符串侧面的空白字符也许任性字符 - ltrim - 重返去掉后的字符串

strcmp:
//区分轻重缓急写,按字节实行字符串相比,第多少个字符串大于第三个字符串时再次回到:1,等于回到:0,小于重临:-1
echo strcmp('abc','Abc');
strcasecmp:
//重回七个字符串的相距数
echo strcasecmp('wbc','bbc');//返回:21
strncmp:
//内定字元数目标字符串比对,此函数和平日,不相同的是,你能够钦点要用来比对的字符串的字元数目。如若其余一个字符串比 len还短时,则会利用非常字符串的长度来比对
echo strncmp("adrdvark","aardwolf",4);//返回:1

 ?>

0x09:明确字符串出现的频率

 代码如下

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

回到目录
寻找替换截取
strpos函数、str_replace函数、substr_replace函数、substr函数、strstr函数

复制代码 代码如下:

/* 格式:ltrim(字符串,'要去掉的特殊字符能够是几个') */ 
$str=rtrim('     admin ');  
echo $str; //'     admin' 左边无空格 
 
echo $str=ltrim(' admin ********','* '); // 'admin ********' 
echo strlen($str); // 14 通过长度获知字符有未有被去掉 

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用&连合

<?php
    $substr = "index.html";
    $log = <<< logfile
    192.168.1.11:/www/htdocs/index.html:[2016/08/10:21:58:27]
    192.168.1.11:/www/htdocs/index.html:[2016/08/18:01:51:37]
    192.168.1.11:/www/htdocs/index.html:[2016/08/20:11:48:27]
logfile;

<?php
/*
 * 明确字符串出现的功效
 * substr_count()重返叁个字符串在别的多少个字符串中冒出的次数。其款式为:
 * int substr_count(string str,string substring [,int offset [,int length]])
 * 可选参数offset和length内定字符串平价(从有协助处开头尝试相称字符串)和字符串长度(从福利先河搜索的长短)
 * 下边包车型地铁例子明确了各类单词在此个sentence中出现的次数
 */
$talk=<<<talk
I am acertain that we could dominate mindshare in this space with
our new product, extablishing a true synergy beteen the marketing
and product development teams. We'll own this space in thress months.
talk;
echo "<br/>";
$sentencearray=explode(" ", $talk);
foreach ($sentencearray as $item)
{
 echo "The word <strong>$item</strong> appears(".substr_count($talk, $item).")times<br/>";
}
?>

              

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

    $pos =strpos($log, $substr);
    $pos2=strpos($log,"n",$pos);
    $pos=$pos strlen($substr) 1;
    $timestamp=substr($log,$pos,$pos2-$pos);
    echo "The file $substr was first accessed on:$timestamp";
    echo "<br>";
    $author="lester@example.com";
    $author=str_replace("@", "at", $author);
    echo "connect the author of this article at $author";
    echo "<br>";
    echo ltrim(strstr($author,"@"), "@");

0x10:用另三个字符串替换一个字符串的一部分

 

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

澳门新浦京娱乐场网站:PHP中一些可以替代正则表达式函数的字符串操作函数,基于PHP常用字符串的总结。 ?>

复制代码 代码如下:

字符串生成与转向

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

回去目录
高低写管理
strtolower函数、strtoupper函数、ucfirst函数、ucwords函数

<?php
/*
 * 用别的一个字符串替换一个字符串的一有的
 * substr_replace()函数将字符串中的一有些用另三个字符串替换,替换从内定的start地方上马,知道start length地方甘休。
 * 其方式为:
 * stringsubstr_replace(string str,string repalcement,int start和length的值。
 * 如下所示,替换电话号码中间4位
 */
$phonenum="15926841384";
echo "<br/>".substr_replace($phonenum, "****", 3,4);
?>

把字符串填充为钦点的长短 - str_pad - 再次回到被填充后的字符串

$url = "";
echo substr($url,strrpos($url,"/") 1);//再次回到:youxiang.php用于重返文件名

<?php
    $url="";
    echo strtolower($url),'<br>';
    $str="hello world";
    echo strtoupper($str),'<br>';
    $str="php is the most popular language ";
    echo ucfirst($str),'<br>';
    echo ucwords($str);
 ?>

你或者感兴趣的稿子:

  • php字符串操作针对负值的判定剖判
  • PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
  • 依靠php常用函数总括(数组,字符串,时间,文件操作)
  • PHP开荒中常用的字符串操作函数
  • PHP 字符串操作入门教程
  • PHP 数组和字符串相互转变完结方式
  • PHP普通话管理汉语字符串截取(mb_substr)和获取汉语字符串字数
  • PHP字符转义相关函数小结(php下的转义字符串)
  • php字符串截取难题
  • PHP 查找字符串常用函数介绍
  • 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/ )这里是忽略"/"的

正文转发自:

/* 格式:str_pad(字符串,pad_length,用什么替换,ST大切诺基_PAD_RIGHT(默认)/STR_PAD_LEFT/STR_PAD_BOTH)  */ 
$a="admin"; 
echo str_pad($a,8,'*'); //admin*** 
echo str_pad($a,8,'*',STR_PAD_RIGHT); // admin*** 
echo str_pad($a,8,'*',STR_PAD_LEFT); // ***admin 
echo str_pad($a,8,'*',STR_PAD_BOTH); // *admin** 
/* 结论
'1...STR_PAD_BOTH的时候要是是不得不填写奇数的,右侧会多于左侧';
'2...第多个参数暗中认可为STENVISION_PAD_RIGHT';
'3...假诺首个数小于等于字符串的长度或许负数,不会生出填充';
*/ 

您只怕感兴趣的篇章:

  • PHP数组操作汇总 php数组的施用技术
  • PHP开辟中常用的字符串操作函数
  • 斟酌种种PHP字符串函数的下结论分析
  • php 常用字符串函数计算
  • 凭借php常用函数总计(数组,字符串,时间,文件操作)

             
将某些字符重复多少次 - str_repeat - 重临重新的字符串

 代码如下

/* 格式:str_repeat(字符串,重复五回)  */ 
echo $a=str_repeat('.',5); // ..... 
echo strlen($a); // 5           

    
将字符串分割为数组 - str_split - 重临数组

 代码如下

/* 格式:str_split(字符串,每一段的尺寸)  */ 
$str='my name is cuilin. I am chinese boy.'; 
$arr=str_split($str,8); 
print_r($arr); //Array ( [0] => my name [1] => is cuili [2] => n. I am [3] => chinese [4] => boy. )  

             
将字符串反转 - strrev - 再次来到反转后的字符串

 代码如下

/* 格式:strrev(字符串)  */ 
$str='admin'; 
echo strrev($str); // nimda 

             
堵塞字符串为钦赐数量的字串 - wordwrap

  • 回来被封堵后的字符串

 代码如下

/* 格式:wordwrap('字符串',列宽度,使用可选的break参数打断字符串,即使)  */ 
$str = "An example on a long word is: Supercalifragulistic"; 
echo wordwrap($str,15);/*
An example on a
long word is:
Supercalifragulistic
*/ 
$text = "admfinadsifjsaidjfasdfasdfdsaf"; 
$newtext = wordwrap($text, 8, "\n",false);  
echo "$newtext";//admfinadsifjsaidjfasdfasdfdsaf 

/*结论
    '1...第多少个参数若是是true(私下认可)符串总是在钦赐的幅度或许在此之前地点被打断。由此,如若某些单词宽度超过了给定的肥瘦,它将被分隔开分离来。';
    '2...第三个参数为false的时候会按单词拆行,';
*/ 
             
专断打乱字符串的依次 - str_shuffle - 重回被打乱后的字符串

 代码如下

echo $a="admin 123"; 
print_r(str_shuffle($a)); // 1a m23din 

             
将字符串深入分析成变量 - parse_str - 再次回到字符串恐怕数组

 代码如下

/* 格式 parse_str('字符串'[,$m]) */ 
$a="host=localhost&user=admin&pass=123456"; 
parse_str($a);//将字符串剖判成变量 
echo $host; //localhost 
 
parse_str($a,$arr);//将数变量保存到数组中 
print_r($arr); 
/*结论
    假若不设置第二个参数,能够一贯变量输出。借使设置了就深入分析成数组存到该变量中
*/ 

         
经过千位分组来格式化数字 - number_format - 重回分割之后的字符串

 代码如下

/* 格式:number_format(变量,留小数点几个人,小数点用如何表示,千位分隔符用什么) 

  • 其多少个第七个参数得同期用否则警报*/ 
    $n=123456789.456; 
    echo number_format($n); // 123,456,789 
    echo number_format($n,2); //123,456,789.46 
    echo number_format($n,2,'.',':');//123:456:789.46 

          

 

大小写替换

转车为大写 - strtoupper - 再次回到转变为大写后的字符串

 代码如下

$str='admin123'; 
echo strtoupper($str); // ADMIN123 

         
转车为小写 - strtoupper - 再次来到转变为小写后的字符串

 代码如下

$str='ADMIN123'; 
echo strtolower($str); // admin123 
         
字符串第五个字符大写 - ucfirst - 再次来到第一个字符大写后的字符串

$str='admin123 cuilin'; 
echo ucfirst($str); // Admin123 cuilin 
         
单词第多个字符大写 - ucwords - 再次回到单词首字母大写后的字符串

$str='admin123 cuilin'; 
echo ucwords($str); // Admin123 Cuilin 
         
字符串切割与并接

将字符串分成小块 - chunk_split

/* 格式:chunk_split(字符串,长度,插入字符) */ 
$str="hellow word ~I like php"; 
echo chunk_split($str,3,'*'); // hel*low* wo*rd *~I *lik*e p*hp*  
         
将字符串分成小块 - strtok

/* 格式:strtok(字符串,'符号分割') */ 
$str="hellow word ~I like php~asf"; 
var_dump(strtok($str,'~')); //string(12) "hellow word " 
var_dump(strtok('~')); //string(10) "I like php" 
var_dump(strtok('~')); //string(3) "asf" 
         
行使一个字符串为标记分割另多少个字符串 - explode 重临三个数组

/* 格式:explode('分割符号',$string[,int $limit])  */ 
$str="a,b,c,d,e,f,g"; 
var_dump(explode(',',$str,-3)); 
var_dump(explode(',',$str,3)); // Array('a','b','c,d,e,f,g,h') 
/*结论
    倘使第一个参数为正数表明把字符串分割为3个单元。
    如果第多少个参数为负数则注脚去掉尾数$limit后边(含)的,前边的例行分割 。
    假若第八个参数为0或1的时候字符串全部为数组的三个单元。
*/           

/* JavaScript中 - str.split('连接符') */ 
str='George.John.Thomas.Cui' 
document.write(str.split('.',3)); // George,John,Thomas 
         
接纳三个字符将数组中的单元以字符串情势连接起来 - implode 重临一字符串

$arr=array('a','b','c'); 
var_dump(implode('-',$arr)); // a-b-c           

/* JavaScript中 - arr.join('连接符') */ 
var arr = new Array(3) 
arr[0] = "George" 
arr[1] = "John" 
arr[2] = "Thomas" 
 
document.write(arr.join(".")) // George.John.Thomas 
         
截取字符串 - substr 再次来到二个字符串或然false

$string="my phpmyadmin user is root and password is root"; 
var_dump(substr($string,1,10)); // string(10) "y phpmyadm"   
var_dump(substr($string,1,-1)); // string(45) "y phpmyadmin user is root and password is roo"  
/*结论    
    假诺第八个参数为正数表明要截取的字符串长度,即使为负数则截取到拾分数的先头
*/           

/* JavaScript中的格式str.substr(开首下标,长度) */ 
var str="Hello world!" 
document.write(str.substr(3,7)) //lo worl 
         
字符串查找替换

使用一个字符将数组中的单元以字符串情势连接起来(区分轻重缓急写) - str_replace 替换已知的字符串

/* 格式 str_replace('把那个东西','改成这一个东西',字符串) */ 
$string="My phpmyadmin user is root and password is root"; 
$arr=array('m','p','i','d'); 
echo str_replace($arr,'*',$string); // My *h**ya***n user *s root an* *asswor* *s root    
         
应用贰个字符将数组中的单元以字符串形式连接起来(不区分轻重缓急写) - str_ireplace

/* 格式 str_ireplace('把这么些东西','改成那一个东西',字符串) */ 
$string="My phpmyadmin user is root and password is root"; 
$arr=array('m','p','i','d'); 
echo str_ireplace($arr,'*',$string); // *y *h**ya***n user *s root an* *asswor* *s root    
         
回来有些字符串在 $string 中冒出的次数 - substr_count 再次回到整数。区分轻重缓急写

/* 格式 substr_count($string,'这几个字符串',要计数的偏移地点,从偏移量起始的这么几此中找) */ 
$string="My phpmyadmin user is root and my phpmyadmin password is root"; 
 
echo strlen($string); //61 
//查找'phpmyadmin在$string中冒出的次数 
echo substr_count($string,'phpmyadmin'); //2 
//查找'phpmyadmin'在$string中从第5个起来的字符串中出现的次数 
echo substr_count($string,'phpmyadmin',4); //1 
//查找'phpmyadmin'在$string中从第5个起来的字符串中冒出的次数 
echo substr_count($string,'phpmyadmin',2,42); //2 
         
轮换字符串中某串为另一个字符串 - substr_replace 定位替换

/* 格式 substr_replace($string,'替换为那几个',从那几个(含),到这些前面包车型地铁) */ 
$var = 'ABCDEFGH:/MNRPQR/'; 
echo "Original: $var<br><br>\n"; 
 
/* 那八个例子使用 “bob” 替换整个 $var。*/ 
echo substr_replace($var, 'bob', 0); //bob 
echo substr_replace($var, 'bob', 0, strlen($var)); //bob 
/* 将 “bob” 插入到 $var 的初步处。*/ 
echo substr_replace($var, 'bob', 0, 0); //bobABCDEFGH:/MNRPQR/ 
/* 下边八个例子使用 “bob” 替换 $var 中的 “MNRPQ君越”。*/ 
echo substr_replace($var, 'bob', 10, -1); //ABCDEFGH:/bob/ 
echo substr_replace($var, 'bob', 10,strlen($var)-11); //ABCDEFGH:/bob/ 
echo substr_replace($var, 'bob', -7, -1); //ABCDEFGH:/bob/ 
 
/* 从 $var 中删除 “MNRPQR”。*/ 
echo substr_replace($var, '', 10, -1); //ABCDEFGH:// 
         
计量八个字符串的相似度。 - similar_text 再次回到一样字符数量 , 重返在多个字符串中相称字符的多少

/* 格式 similar_text($string1,$string2) */ 
$a="host is localhsot user is admin password is 123465"; 
$b="Host and user and password phpmyadmin"; 
echo similar_text($a,$b); //24 
         
追寻内定字符在字符串中的最终一遍出现 - strrchr 找到了回来前边的字符串。假设未被找到,重临 FALSE。

/* 格式 strrchr($string,'找这一个字符 ') */ 
 
// 获取 $PATH 中不含磁盘符号的目录 
echo $dir = substr(strrchr($PATH, ":"), 1); // \svn\TortoiseSVN\bin; 
echo '<br>'; 
// 获取最终一行内容 
$text = "Line 1\nLine 2\nLine 3"; 
echo $last = substr(strrchr($text, 10), 1 ); // Line3 
         
搜求字符串的第贰遍出现(区分轻重缓急写) - strstr 找到再次回到后边的字符,找不到再次回到false 【别称strchr】

/* 格式 strstr($string,'找那一个字符 ',true/false(此参数从 PHP 5.3.0 起)) */ 
$email  = 'name@example.com'; 
$domain = strstr($email, '@E'); 
var_dump($domain); // @example.com 
         
转移钦赐字符- strtr

/* 格式 strtr(数组键值对,字符串); 数组键值对认证如李继宏西替换来什么 */ 
$trans = array("hello" => "hi", "hi" => "hello"); 
echo strtr("hi all, I said hello", $trans); // hello all,I said hi 
         
搜求字符串第壹次出现的职责(区分轻重缓急写)- strpos 找到重临整数(0开头地点),失利再次回到false

/* 格式 strpos($str,'要找的字符',从这几个职位上马前边字符开端找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strpos($str,'m',0));//6 
         
找出字符串第二回出现的职位(不区分轻重缓急写)- stripos 找到重临整数(0始发地方),失利重返false

/* 格式 stripos($str,'要找的字符',从那一个岗位上马前边字符起始找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(stripos($str,'m',0));//0 
         
寻找字符串最终次面世的岗位(区分轻重缓急写)- strrpos 找到重返整数(0最初地点),战败再次回到false

/* 格式 strrpos($str,'要找的字符',从那么些职务上马前面字符开端找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strrpos($str,'O',1));  // 54 
         
寻觅字符串最终次面世的职责(不区分轻重缓急写)- strripos 找到重临整数(0从头地方),失败再次回到false

/* 格式 strripos($str,'要找的字符',从这几个职位上马前面字符带头找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strripos($str,'O',1)); // 55 
         
字符串计算

总计字符串含有的单词数 - str_word_count 重临整数

/* 格式 str_word_count($string) */ 
$var = "is  the answer to the 128th question"; 
echo str_word_count($var);//7 
         
总括字符串长度 - strlen 再次来到整数

/* 格式 strlen($string) */ 
echo strlen('admin'); // 5           

/* JavaScript中 str.length */ 
str='admin'; 
document.write(str.length); //  
         
HTML标签有关

预订义转移字符html编码 - htmlspecialchars

/* 格式 htmlspecialchars('字符串',ENT_QUOTES) */ 
$var = "is  the answer to the 128th question"; 
echo str_word_count($var);//7 
echo $str = "John & '亚当斯' <a href="index.html">首页</a>"; //John & '亚当斯' 首页 ->会有超链接 
echo htmlspecialchars($str, ENT_QUOTES); //John & '亚当斯' <a href="index.html">首页</a> ->未有超链接,直接呈现 
         
\n转义为<br>标签 - nl2br

/* 格式 nl2br('字符串') */ 
echo $str = "admin\n123456";/*admin
123456
*/ 
echo nl2br($str);/*admin
 
123456
*/ 
         
在钦点的字符前加多反斜线转义字符串中字符 addcslashes

/* 格式 addcslashes('字符串',要转义的字符) */ 
$str = "Hello, my name is John Adams."; 
echo addcslashes($str,'a..z'); //H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.  
         
反引用二个选择addcslashes()增添的反斜线 stripcslashes

/* 格式 stripcslashes('字符串') */ 
$str = "Hello, my name is John Adams."; 
echo $str1=addcslashes($str,'a..z'); // H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.Hello, my name is John Adams. 
echo stripcslashes($str1);/* - 转义 \n等之所以会并发回车
Hello, my   
me is Joh  
 Adms.  
*/ 
         
点名预约义字符前增加反斜线 addslashes

$str = "Who's John Adams?"; 
echo addslashes($str); // Who\'s John Adams?    
         
删去addslashes()增多的转义字符 stripslashes

  
$str = "Who's John Adams?"; 
echo $str1=addslashes($str); // Who\'s John Adams?    
echo stripslashes($str1); // Who's John Adams? 
         
在字符串中一些预订义的字符前增添反斜线 quotemeta(. \ * ? [] ^ $ ())

  
$str = "Hello world. (can you hear me?)"; 
echo quotemeta($str); //Hello world\. \(can you hear me\?\) 
         
从钦命的 ASCII 值再次来到字符 chr(ASCII)

  
echo chr(052); // * 
echo chr(96); //` 
         
从钦命的 ASCII 值重回字符 ord(字符)

echo ord('*'); //42 
echo ord('`'); // 96 

本文由澳门新浦京娱乐场网站发布于www.146.net,转载请注明出处:澳门新浦京娱乐场网站:PHP中一些可以替代正则