PHP經(jīng)典實(shí)用正則表達(dá)式小結(jié)
本文實(shí)例講述了PHP經(jīng)典實(shí)用正則表達(dá)式。分享給大家供大家參考,具體如下:
對(duì)于開發(fā)人員來說,正則表達(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)頁上的全部圖片,這段代碼就是你需要的,你可以輕松的建立一個(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è)簡單的函數(shù)有兩個(gè)參數(shù):第一個(gè)是你要匹配的標(biāo)簽,第二個(gè)是包含XML或HTML的變量,再強(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á)式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用php來實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)
在調(diào)用網(wǎng)絡(luò)服務(wù)的過程中,需要兩個(gè)消息,發(fā)送的消息和接受的消息,又來有往方能來往不是。2009-09-09探討Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的詳解
本篇文章是對(duì)Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP中date與gmdate的區(qū)別及默認(rèn)時(shí)區(qū)設(shè)置
這篇文章主要介紹了PHP中date與gmdate的區(qū)別及默認(rèn)時(shí)區(qū)設(shè)置,需要的朋友可以參考下2014-05-05php讀取javascript設(shè)置的cookies的代碼
最主要的就是給cookies設(shè)置一個(gè)名字,在javascript設(shè)置cookies的時(shí)候不要用無參數(shù)函數(shù),那樣用的話php沒辦法讀取2010-04-04