PHP經(jīng)典實(shí)用正則表達(dá)式小結(jié)
本文實(shí)例講述了PHP經(jīng)典實(shí)用正則表達(dá)式。分享給大家供大家參考,具體如下:
對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),正則表達(dá)式是一個(gè)非常有用的功能,它提供了 查找,匹配,替換 句子,單詞,或者其他格式的字符串。這里介紹了幾個(gè)超實(shí)用的php正則表達(dá)式,需要的朋友可以參考下。
1. 驗(yàn)證域名檢驗(yàn)一個(gè)字符串是否是個(gè)有效域名
<?php
$url = "https://www.baidu.com";
if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?\/?/i', $url)) {
echo "Your url is ok.";
} else {
echo "Wrong url.";
}
2. 從一個(gè)字符串中 突出某個(gè)單詞
這是一個(gè)非常有用的在一個(gè)字符串中匹配出某個(gè)單詞 并且突出它,非常有效的搜索結(jié)果
<?php
$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or
regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";
$text = preg_replace("/(regex)/i", '<span style="background:#5fc9f6">1</span>', $text);
echo $text;
function get_the_title(){
return 'Save the search.php file and open style.css. Append the following line to it: ';
}
$s = 'and php';
$title = get_the_title();
$keys= explode(" ",$s);
$title = preg_replace('/('.implode('|', $keys) .')/iu',
'<strong>\0</strong>',
$title);
echo $title;
3. 從HTML文檔中獲得全部圖片
如果你曾經(jīng)希望去獲得某個(gè)網(wǎng)頁(yè)上的全部圖片,這段代碼就是你需要的,你可以輕松的建立一個(gè)圖片下載機(jī)器人
<?php
$images = array();
$data = file_get_contents('https://www.baidu.com');
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $data, $media);
unset($data);
$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);
foreach($data as $url)
{
$info = pathinfo($url);
if (isset($info['extension']))
{
if (($info['extension'] == 'jpg') ||
($info['extension'] == 'jpeg') ||
($info['extension'] == 'gif') ||
($info['extension'] == 'png'))
array_push($images, $url);
}
}
var_dump($images);
4. 匹配一個(gè)XML或者HTML標(biāo)簽
這個(gè)簡(jiǎn)單的函數(shù)有兩個(gè)參數(shù):第一個(gè)是你要匹配的標(biāo)簽,第二個(gè)是包含XML或HTML的變量,再?gòu)?qiáng)調(diào)下,這個(gè)真的很強(qiáng)大
<?php
function get_tag( $tag, $xml ) {
$tag = preg_quote($tag);
output($tag);
preg_match_all('/<'.$tag.'[^>]*>(.*?)<\/'.$tag.'>./',
$xml,
$matches,
PREG_PATTERN_ORDER
);
return $matches[1];
}
$xml = '<span>bb<a>bbb</a><a>ccc</a></span><span>bb<a>aa</a><p><a>ddd</a></p></span>';
$tag = 'a';
$return = get_tag($tag, $xml);
var_dump($return);
/*
array(2) {
[0]=>
array(3) {
[0]=>
string(11) "bbb<"
[1]=>
string(10) "aa<"
[2]=>
string(11) "ddd<"
}
[1]=>
array(3) {
[0]=>
string(3) "bbb"
[1]=>
string(2) "aa"
[2]=>
string(3) "ddd"
}
}
array(3) {
[0]=>
string(3) "bbb"
[1]=>
string(2) "aa"
[2]=>
string(3) "ddd"
}
*/
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php輸入數(shù)據(jù)統(tǒng)一類實(shí)例
這篇文章主要介紹了php輸入數(shù)據(jù)統(tǒng)一類,實(shí)例分析了針對(duì)輸入數(shù)據(jù)的各種轉(zhuǎn)換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
PHP 使用二進(jìn)制保存用戶狀態(tài)的實(shí)例
下面小編就為大家分享一篇PHP 使用二進(jìn)制保存用戶狀態(tài)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別2009-09-09
PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作基類
這篇文章主要介紹了PHP基于單例模式實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作基類,涉及PHP操作數(shù)據(jù)庫(kù)的基本配置與增刪改查等操作技巧,需要的朋友可以參考下2016-01-01
PHP實(shí)現(xiàn)圖的鄰接矩陣表示及幾種簡(jiǎn)單遍歷算法分析
這篇文章主要介紹了PHP實(shí)現(xiàn)圖的鄰接矩陣表示及幾種簡(jiǎn)單遍歷算法,結(jié)合實(shí)例形式分析了php基于鄰接矩陣實(shí)現(xiàn)圖的定義及相關(guān)遍歷操作技巧,需要的朋友可以參考下2017-11-11
THINKPHP在添加數(shù)據(jù)的時(shí)候獲取主鍵id的值方法
下面小編就為大家?guī)?lái)一篇THINKPHP在添加數(shù)據(jù)的時(shí)候獲取主鍵id的值方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
php基于表單密碼驗(yàn)證與HTTP驗(yàn)證用法實(shí)例
這篇文章主要介紹了php基于表單密碼驗(yàn)證與HTTP驗(yàn)證用法,以實(shí)例形式較為詳細(xì)的分析了表單密碼驗(yàn)證與HTTP驗(yàn)證的原理與相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
PHP中調(diào)試函數(shù)debug_backtrace的使用示例代碼
debug_backtrace() 是一個(gè)很低調(diào)的函數(shù),很少有人注意過(guò)它,這篇文章主要給大家介紹了關(guān)于PHP中調(diào)試函數(shù)debug_backtrace的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09

