国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP中一些可以替代正則表達式函數(shù)的字符串操作

2020-03-22 20:16:25
字體:
供稿:網(wǎng)友
0x01:根據(jù)預(yù)定義的字符對字符串進行詞法分析復(fù)制代碼 代碼如下:
php
/*
* 在處理大量信息時,html' target='_blank'>正則表達式函數(shù)會使速度大幅減慢。應(yīng)當在需要使用正則表達式解析比較復(fù)雜的字符串時才能使用這些函數(shù)。如果要解析簡單的表達式,還可以采用很多可以顯著加快處理過程的預(yù)定義函數(shù)。
*//*
* 根據(jù)預(yù)定義的字符對字符串進行詞法分析
* strtok()函數(shù)根據(jù)預(yù)定義的字符列表來解析字符串。其形式為:
* string strtok(string str,string tokens)
* strtok()函數(shù),必須連續(xù)調(diào)用這個函數(shù),才能完全的對一個字符串進行詞法分析;每次調(diào)用該函數(shù)只是對字符串的下一部分做詞法分析。但是,str參數(shù)只需要指定一次,因為函數(shù)會跟蹤str中的位置,知道完全對str完成了詞法分析,或者指定了心得str參數(shù)。
* 如下面的例子所示:
*/
$info="lv chen yang|Hello:world&757104454@qq.com";
//定義界定符,包括(|)(:)( )(&)
$tokens="|:
$tokened=strtok($info, $tokens);
while ($tokened)
{
echo "Element:$tokened br/
//連續(xù)調(diào)用strtok()函數(shù),完成對整個字符串的詞法分析
$tokened=strtok($tokens);
}

0x02:根據(jù)預(yù)定義的定界符分解字符串復(fù)制代碼 代碼如下:
php
/*
* 根據(jù)預(yù)定義的定界符分解字符串:explode()函數(shù)
* 次函數(shù)將字符串str分成子串數(shù)組,其形式為:
* array explode(string separator,string str [, int limit])
* 原字符串被根據(jù)separator指定的字符串分割為不同的元素。元素的數(shù)量可以通過可選的參數(shù)limit來限制。可以結(jié)合explode()/sizeof()和strip_tags()來確定給定文本塊中單詞的總數(shù)
* 如下所示:
*/
$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()函數(shù)始終比preg_split、spilt()和spliti()快得多。因此,在不需要使用正則表達式時,一定要使用這個函數(shù)。
*/

0x03:將數(shù)組轉(zhuǎn)換成字符串復(fù)制代碼 代碼如下:
php
/*
* 將數(shù)組轉(zhuǎn)換成字符串
* explode()函數(shù)可以根據(jù)界定字符將字符串轉(zhuǎn)換為相應(yīng)的數(shù)組,但是可以通過implode()函數(shù)將數(shù)組轉(zhuǎn)換為規(guī)定的界定字符為界限的字符串
* 其形式為:
* string implode(string delimiter,array pieces)
* 如下所示:
*/
$citys=array("Chengdu","Chongqing","Beijing","Shanghai","Guangzhou");
$citystring=implode("|", $citys);
echo $citystring;

0x04:解析復(fù)雜的字符串復(fù)制代碼 代碼如下:
php
/*
* 解析復(fù)雜的字符串
* strpos()函數(shù)在字符串中以區(qū)分大小寫的方式找到substr第一次出現(xiàn)的位置,其形式為
* int strpos(string str,string substr [,int offset])
* 可選參數(shù)offset指定開始搜索的位置。如果substr不在str中,則strpos()返回False。可選參數(shù)確定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中首次出現(xiàn)的位置是什么
$pos=strpos($log, $substr);
//查找行結(jié)束的數(shù)值位置
$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/
/*
* 函數(shù)stripos()和函數(shù)strpos()函數(shù)用法相同,唯一的區(qū)別是stripos()不區(qū)分大小寫。
*/

0x05:找到字符串最后一次出現(xiàn)的位置復(fù)制代碼 代碼如下:
php
/*
* 找到字符串中最后一次出現(xiàn)的位置
* strrpos()函數(shù)搜索字符串的最后出現(xiàn)的位置,返回它的位置(數(shù)值序號)其形式為:
* int strrpos(string str,char substr [,offset])
* 可選參數(shù)offset確定strrpos()函數(shù)的開始搜索位置。加入希望縮短冗長的新聞總結(jié),
* 截取總結(jié)中的某些部分,并用省略號代替所截去的部分。然而,并非簡單的將總結(jié)明確的剪為所需的長度,
* 你可能希望以一種對用戶友好的方式進行剪切,截取到與階段長度最接近的單詞末尾。
* 如下例子所示
*/
$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;

0x06:用另外一個字符串替換字符串的所有實例復(fù)制代碼 代碼如下:
php
/*
* 用另外一個字符串替換字符串的所有實例
* str_replace()函數(shù)以區(qū)分大小寫的方式用另外一個字符串奇幻某個字符串的所有實例。其形式為:
* mixed str_replace(string occurrence, mixed replacement, mixed str [,int count])
* 如果str中沒有找到occurrence,則str保持不變,如果定義了可選參數(shù)count,則只替換str中count個currence。
* 此函數(shù)很適合對自動獲取電子郵箱地址的程序隱藏電子右鍵地址,如下所示:
*/
$email="lvchenyang@live.cn";
$email=str_replace("@", "(at)", $email);
echo " br/ ".$email;

0x07:獲取字符串的一部分復(fù)制代碼 代碼如下:
php
/*
* 獲取字符串的一部分
* strstr()函數(shù)返回字符串中從預(yù)定義的字符串的第一個出現(xiàn)開始的剩余部分(包括occurrence這個字符串)。其形式為:
* string strstr(string str,string occurrence[,bool fefore_needle])
* 可選參數(shù)before_needle會改變strstr()的行為,使函數(shù)返回字符串在第一個出先之前的部分。
* 下面的例子是獲取右鍵中的域名,結(jié)合ltrim()函數(shù)
*/
$url="lvchenyang@live.cn";
echo " br/ ".ltrim(strstr($url, "@"),"@");

0x08:根據(jù)預(yù)定義的便宜返回字符串的一部分復(fù)制代碼 代碼如下:
php
/*
* substr()函數(shù)返回字符串中位于start和start+length之間的部分,其形式為:
* string substr(string str,int start [,int length])
* 如果沒有指定的可選參數(shù),則返回從start到str末尾的字符串
* 如下所示
*/
$str="lvchenyang";
echo " br/ ".substr($str, 2,4);
//output: chen

0x09:確定字符串出現(xiàn)的頻率復(fù)制代碼 代碼如下:
php
/*
* 確定字符串出現(xiàn)的頻率
* substr_count()返回一個字符串在另外一個字符串中出現(xiàn)的次數(shù)。其形式為:
* int substr_count(string str,string substring [,int offset [,int length]])
* 可選參數(shù)offset和length指定字符串便宜(從便宜處開始嘗試匹配字符串)和字符串長度(從便宜開始搜索的長度)
* 下面的例子確定了每個單詞在這個sentence中出現(xiàn)的次數(shù)
*/
$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/
}

0x10:用另一個字符串替換一個字符串的一部分復(fù)制代碼 代碼如下:
php
/*
* 用另外一個字符串替換一個字符串的一部分
* substr_replace()函數(shù)將字符串中的一部分用另一個字符串替換,替換從指定的start位置開始,知道start+length位置結(jié)束。
* 其形式為:
* stringsubstr_replace(string str,string repalcement,int start和length的值。
* 如下所示,替換電話號碼中間4位
*/
$phonenum="15926841384";
echo " br/ ".substr_replace($phonenum, "****", 3,4);

PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 扎鲁特旗| 白河县| 孟州市| 阿鲁科尔沁旗| 郯城县| 英吉沙县| 突泉县| 应城市| 科技| 仪征市| 牟定县| 霍山县| 当涂县| 盐山县| 临湘市| 湘阴县| 双辽市| 汽车| 聊城市| 明水县| 察隅县| 黄平县| 宁安市| 屏东市| 安义县| 正安县| 桐乡市| 张家界市| 循化| 鹿邑县| 宜良县| 两当县| 共和县| 竹山县| 诸城市| 苏尼特左旗| 闽清县| 涿州市| 乐安县| 原阳县| 铜梁县|