PHP經(jīng)典實用正則表達式小結
本文實例講述了PHP經(jīng)典實用正則表達式。分享給大家供大家參考,具體如下:
對于開發(fā)人員來說,正則表達式是一個非常有用的功能,它提供了 查找,匹配,替換 句子,單詞,或者其他格式的字符串。這里介紹了幾個超實用的php正則表達式,需要的朋友可以參考下。
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. 從一個字符串中 突出某個單詞
這是一個非常有用的在一個字符串中匹配出某個單詞 并且突出它,非常有效的搜索結果
<?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)頁上的全部圖片,這段代碼就是你需要的,你可以輕松的建立一個圖片下載機器人
<?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標簽
這個簡單的函數(shù)有兩個參數(shù):第一個是你要匹配的標簽,第二個是包含XML或HTML的變量,再強調(diào)下,這個真的很強大
<?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款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對大家PHP程序設計有所幫助。
相關文章
探討Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的詳解
本篇文章是對Smarty中如何獲取數(shù)組的長度以及smarty調(diào)用php函數(shù)的方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP中date與gmdate的區(qū)別及默認時區(qū)設置
這篇文章主要介紹了PHP中date與gmdate的區(qū)別及默認時區(qū)設置,需要的朋友可以參考下2014-05-05

