亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:27:30
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP中一些可以替代正則表達式函數的字符串操作函數,本文總結的是一些比較特別的字符串操作函數,需要的朋友可以參考下
 
 

0x01:根據預定義的字符對字符串進行詞法分析

 

復制代碼代碼如下:

<?php
/*
 * 在處理大量信息時,正則表達式函數會使速度大幅減慢。應當在需要使用正則表達式解析比較復雜的字符串時才能使用這些函數。如果要解析簡單的表達式,還可以采用很多可以顯著加快處理過程的預定義函數。
 */

 

/*
 * 根據預定義的字符對字符串進行詞法分析
 * 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);
}
?>

 

0x02:根據預定義的定界符分解字符串

 

復制代碼代碼如下:

<?php 
/*
 * 根據預定義的定界符分解字符串:explode()函數
 * 次函數將字符串str分成子串數組,其形式為:
 * array explode(string separator,string str [, int limit])
 * 原字符串被根據separator指定的字符串分割為不同的元素。元素的數量可以通過可選的參數limit來限制??梢越Y合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()快得多。因此,在不需要使用正則表達式時,一定要使用這個函數。
 */
?>

 

0x03:將數組轉換成字符串

 

復制代碼代碼如下:

<?php 
/*
 * 將數組轉換成字符串
 * explode()函數可以根據界定字符將字符串轉換為相應的數組,但是可以通過implode()函數將數組轉換為規定的界定字符為界限的字符串
 * 其形式為:
 * string implode(string delimiter,array pieces)
 * 如下所示:
 */
$citys=array("Chengdu","Chongqing","Beijing","Shanghai","Guangzhou");
$citystring=implode("|", $citys);
echo $citystring;
?>

 

0x04:解析復雜的字符串

 

復制代碼代碼如下:

<?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()不區分大小寫。
 */
?>

 

0x05:找到字符串最后一次出現的位置

 

復制代碼代碼如下:

<?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;
?>

 

0x06:用另外一個字符串替換字符串的所有實例

 

復制代碼代碼如下:

<?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;
?>

 

0x07:獲取字符串的一部分

 

復制代碼代碼如下:

<?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, "@"),"@");
?>

 

0x08:根據預定義的便宜返回字符串的一部分

 

復制代碼代碼如下:

<?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
?>

 

0x09:確定字符串出現的頻率

 

復制代碼代碼如下:

<?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/>";
}
?>

 

0x10:用另一個字符串替換一個字符串的一部分

 

復制代碼代碼如下:

<?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);
?>
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人伊成久久人综合网站| 在线观看视频亚洲| 伊人伊成久久人综合网站| 亚洲国产女人aaa毛片在线| 国产一级揄自揄精品视频| 亚洲天堂av在线免费观看| 国产精品视频色| 美女少妇精品视频| 欧洲成人在线视频| 国产91对白在线播放| 欧美老女人性生活| 97香蕉超级碰碰久久免费软件| 国产一区深夜福利| 第一福利永久视频精品| 日韩电影中文 亚洲精品乱码| 亚洲欧美综合区自拍另类| 高清欧美性猛交| 亚洲天堂免费观看| 一本一本久久a久久精品综合小说| 欧美成人全部免费| 日韩精品视频在线| yw.139尤物在线精品视频| 亚洲欧美国产精品va在线观看| 国产精品欧美一区二区| 国产亚洲一区二区在线| 国产成人精品免费久久久久| 亚洲欧洲成视频免费观看| 亚洲在线免费观看| 神马国产精品影院av| 中文字幕日韩av电影| 亚洲国产精品久久久久秋霞不卡| 亚洲精品短视频| 欧美亚洲国产精品| 国产精品久久久久久久av电影| 亚洲第一页在线| 亚洲精品福利免费在线观看| 亚洲精品美女免费| 色综合色综合网色综合| 亚洲乱码av中文一区二区| 国产精品亚洲片夜色在线| 亚洲第一网中文字幕| 亚洲精品免费一区二区三区| 亚洲欧美制服第一页| 日韩av有码在线| 国产欧美精品va在线观看| 欧美激情亚洲激情| 中文字幕一区二区三区电影| 亚洲精品一区中文| 亚洲精品一区二区在线| 欧美极度另类性三渗透| 国外成人性视频| 亚洲国产欧美久久| 欧美激情xxxx| 日产日韩在线亚洲欧美| 精品久久香蕉国产线看观看gif| 欧美日韩国产综合视频在线观看中文| 欧美日韩另类字幕中文| 欧美日韩aaaa| 亚洲成人国产精品| 亚洲欧美中文另类| 92看片淫黄大片看国产片| 欧美日韩在线观看视频| 欧美野外猛男的大粗鳮| 中文字幕久久久av一区| 97人人爽人人喊人人模波多| 亚洲国模精品一区| 国产欧美一区二区三区在线看| 精品亚洲aⅴ在线观看| 亚洲精选在线观看| 成人性生交大片免费看小说| 国产日韩在线播放| 亚洲综合中文字幕在线| 国产在线观看精品一区二区三区| 一本一本久久a久久精品综合小说| 欧美日韩国产成人高清视频| 欧美激情乱人伦一区| 国产区精品在线观看| 亚洲激情视频在线观看| 亚洲三级av在线| 国产欧美精品在线播放| 亚洲国产99精品国自产| 国产精品视频网址| 精品国产精品自拍| 精品久久久久久中文字幕| 国产精品美女久久久久久免费| 欧美激情精品久久久久久大尺度| 国产精品观看在线亚洲人成网| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品尤物福利片在线观看| 一区二区在线视频播放| 日韩美女写真福利在线观看| 亚洲欧美一区二区三区在线| 精品久久久久久中文字幕大豆网| 日本国产一区二区三区| 久久99国产精品自在自在app| 欧美性xxxx极品高清hd直播| 亚州精品天堂中文字幕| 欧美日韩一区二区三区在线免费观看| 亚洲xxx自由成熟| 欧美一性一乱一交一视频| 欧美在线观看网址综合| 久久久精品视频成人| 亚洲黄一区二区| 亚洲美女动态图120秒| 精品国产1区2区| 精品视频www| 亚洲综合大片69999| 亚洲免费小视频| 欧美一级淫片丝袜脚交| 欧美国产日本高清在线| 亚洲第一色在线| 日韩亚洲国产中文字幕| 欧美精品久久久久久久免费观看| 日韩在线免费观看视频| 国产精品久久久久久久app| 成人a级免费视频| 免费成人高清视频| xvideos亚洲| 国产欧美日韩视频| 国产剧情日韩欧美| 欧美日韩亚洲天堂| 国产精品久久电影观看| 亚洲欧美三级伦理| 一色桃子一区二区| 中文字幕精品网| 日本国产欧美一区二区三区| 欧美亚洲一区在线| 亚洲国产精品va在线观看黑人| 日本三级久久久| 欧美高清电影在线看| 一区二区三区视频免费| 91久久精品国产91久久| 法国裸体一区二区| 国产精品人成电影在线观看| 亚洲欧美制服中文字幕| 国语自产精品视频在线看抢先版图片| 国产91成人在在线播放| 久久福利视频网| 成人激情春色网| 亚洲va欧美va国产综合剧情| 国产成人精品久久久| 欧美性xxxx极品高清hd直播| 91精品国产综合久久香蕉的用户体验| 成人网在线观看| 亚洲国产精品小视频| 亚洲网站在线观看| 免费成人高清视频| 97香蕉超级碰碰久久免费软件| 成人欧美一区二区三区在线| 亚洲精品福利在线观看| 欧美一区亚洲一区| 亚洲国产精品成人va在线观看| 久久久在线观看| 国产精品美女无圣光视频| 国产精品美女www爽爽爽视频| 国产成人自拍视频在线观看| 欧美乱大交做爰xxxⅹ性3| 国产精品极品尤物在线观看| xxxxxxxxx欧美| 日韩久久精品电影| 国产精品99久久久久久www| 亚洲性日韩精品一区二区| 一个色综合导航| 韩国精品美女www爽爽爽视频|