PHP經(jīng)典實用正則表達(dá)式小結(jié)
本文實例講述了PHP經(jīng)典實用正則表達(dá)式。分享給大家供大家參考,具體如下:
對于開發(fā)人員來說,正則表達(dá)式是一個非常有用的功能,它提供了 查找,匹配,替換 句子,單詞,或者其他格式的字符串。這里介紹了幾個超實用的php正則表達(dá)式,需要的朋友可以參考下。
1. 驗證域名檢驗一個字符串是否是個有效域名
<?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. 從一個字符串中 突出某個單詞
這是一個非常有用的在一個字符串中匹配出某個單詞 并且突出它,非常有效的搜索結(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)希望去獲得某個網(wǎng)頁上的全部圖片,這段代碼就是你需要的,你可以輕松的建立一個圖片下載機(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. 匹配一個XML或者HTML標(biāo)簽
這個簡單的函數(shù)有兩個參數(shù):第一個是你要匹配的標(biāo)簽,第二個是包含XML或HTML的變量,再強(qiáng)調(diào)下,這個真的很強(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
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之間的區(qū)別2009-09-09
PHP基于單例模式實現(xiàn)的數(shù)據(jù)庫操作基類
這篇文章主要介紹了PHP基于單例模式實現(xiàn)的數(shù)據(jù)庫操作基類,涉及PHP操作數(shù)據(jù)庫的基本配置與增刪改查等操作技巧,需要的朋友可以參考下2016-01-01
PHP實現(xiàn)圖的鄰接矩陣表示及幾種簡單遍歷算法分析
這篇文章主要介紹了PHP實現(xiàn)圖的鄰接矩陣表示及幾種簡單遍歷算法,結(jié)合實例形式分析了php基于鄰接矩陣實現(xiàn)圖的定義及相關(guān)遍歷操作技巧,需要的朋友可以參考下2017-11-11
THINKPHP在添加數(shù)據(jù)的時候獲取主鍵id的值方法
下面小編就為大家?guī)硪黄猅HINKPHP在添加數(shù)據(jù)的時候獲取主鍵id的值方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
PHP中調(diào)試函數(shù)debug_backtrace的使用示例代碼
debug_backtrace() 是一個很低調(diào)的函數(shù),很少有人注意過它,這篇文章主要給大家介紹了關(guān)于PHP中調(diào)試函數(shù)debug_backtrace的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,感興趣的朋友們隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09

