15 super-Practical PHP Regular Expressions _ regular expressions

Source: Internet
Author: User
Tags html tags php regular expression uppercase letter wordpress blog

In this article, I've written 15 very useful regular expressions that Web developers should be able to collect into their own toolkit.

Verify Domain Name
Verify that a string is a valid domain name.

$url = "http://komunitasweb.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."; 
} 

Highlight a word from a string
This is a very useful search result that matches a word in a string and highlights it very efficiently.

$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 R Egexen) are written in a formal language so can is interpreted by a regular expression "; 
$text = Preg_replace ("/b (Regex) b/i", "<span style=" background: #5fc9f6 ">1</span>", $text); 

Outstanding query results in your WordPress blog as I said just now, the above code can be very convenient to search for results, and here is a better way to perform a search on a WordPress blog to open your file search.php, and then find a way the_ Title () and replace it with the following code

echo $title; 
 
Now, just before the modified line, add this code: 
 
<?php 
  $title   = Get_the_title (); 
  $keys = Explode ("", $s); 
  $title   = preg_replace ('/implode (' | ', $keys). /iu ', 
    ' <strong>\0</strong> ', 
    $title); 
? > 
 
Save the search.php file and open style.css. Append the following line to it: 
 
strong.search-excerpt {background:yellow;} 

Get all the pictures from the HTML document
If you ever want to get all the pictures on a page, this code is what you need, you can easily build a picture to download the robot

$images = Array (); 
Preg_match_all ('/(IMG|SRC) = (' | ') [^ "' >]+/i ', $data, $media); 
" Unset ($data); 
$data =preg_replace ('/(IMG|SRC) ("| = "|= ') (. *)/I '," $ ", $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); 
  } 
 

Delete duplicate Letters
Do you often type letters repeatedly? This expression is appropriate.

$text = Preg_replace ("/s (w+s) 1/i", "$", $text);

Remove Duplicate punctuation
function ibid, but just face punctuation, white repetition of commas

$text = Preg_replace ("/.+/i", ".", $text); 

Match an XML or HTML tag
This simple function has two parameters: the first is the tag you want to match, the second is the variable that contains XML or HTML, and again, this is really powerful.

function Get_tag ($tag, $xml) { 
 $tag = Preg_quote ($tag); 
 Preg_match_all (' {< '. $tag. [^>]*> (. *?) </'. $tag. ' ". '} ', 
          $xml, 
          $matches, 
          preg_pattern_order); 
 
 return $matches [1]; 
} 

Match XML or HTML tags with attribute values
This feature is very similar to the above, but it allows you to match the inside of the tag has attribute values, such as you can easily match <div id= "header" >

function Get_tag ($attr, $value, $xml, $tag =null) { 
 if (Is_null ($tag)) 
  $tag = ' \w+ '; 
 else 
  $tag = Preg_quote ($tag); 
 
 $attr = Preg_quote ($attr); 
 $value = Preg_quote ($value); 
 
 $tag _regex = "/< (". $tag. ") [^>]* $attr \s*=\s* ". 
        ) ([' \ "]) $value \\2[^>]*> (. *?) <\/\\1>/" 
 
 preg_match_all ($tag _regex, 
         $xml, 
         $matches, 
         preg_pattern_order); 
 
 return $matches [3]; 
} 

Match hexadecimal color values
Another interesting tool for Web developers, which allows you to match and validate hexadecimal color values.

$string = "#555555"; 
if (Preg_match ('/^# (?:(?: [A-fd]{3}) {1,2}) $/i ', $string)) { 
echo "example 6 successful."; 
} 

Find page Title
This code makes it easy to find and print content between pages <title> and </title>

$fp = fopen ("Http://www.catswhocode.com/blog", "R"); 
while (!feof ($fp)) { 
  $page. = Fgets ($fp, 4096); 
} 
 
$titre = Eregi ("<title> (. *) </title>", $page, $regs); 
echo $regs [1]; 

Explain Apache logs
Most websites use the famous Apache server, and if your site is the same, how about using PHP regular expressions to parse Apache server logs?

Logs:apache Web server 
//successful hits to HTML files. Useful for counting the number of page views. 
' ^ ((? #client IP or domain name) s+) s+ ((? #basic authentication) s+s+s+) s+[(? #date and time) [^]]+]]s+ "(?: get| Post| Head) ((? #file)/[^? "] +?. HTML?? ((? #parameters) [^?] +)? Http/[0-9.] + "s+ (? #status code) 200s+ ((? #bytes transferred) [ -0-9]+) S+" ((? #referrer) [^ "]*]" s+ "(? #user agent) [^"]*) "$ ' 
 
// Logs:apache Web server 
//404 errors only 
' ^ ((? #client IP or domain name) s+ s+ ((? #basic authentication) s+s+s+) s+ [(? #date and time) [^]]+)] S+ "(?: get| Post| Head) ((? #file) [^?] +)?? ((? #parameters) [^?] +)? Http/[0-9.] + "s+ (? #status code) 404s+ ((? #bytes transferred) [ -0-9]+) S+" ((? #referrer) [^ "]*"] "s+" ((? #user agent) [^ "]*"] "$" 

Use smart quotes instead of double quotes
If you are a printing enthusiast, you will like this regular expression that allows smart quotes instead of double quotes, which is used by WordPress on its content

Preg_replace (' B "B ([^" x84x93x94rn]+) b "B", ' 1? ', $text);

Verifying the complexity of passwords
This regular expression will detect whether the input contains 6 or more letters, numbers, underscores, and hyphens. Input must contain at least one uppercase letter, one lowercase and one digit

Copy Code code as follows:
' A (? =[-_a-za-z0-9]*?[ A-z]) (? =[-_a-za-z0-9]*?[ A-z]) (? =[-_a-za-z0-9]*?[ 0-9]) [-_a-za-z0-9]{6,}z '

WordPress: Use regular to get the picture on the post
I know a lot of people are users of WordPress, and you might like and want to use the image code retrieved from the content of the post. Use this code in your blog just to copy the following code into one of your files

<?php if (have_posts ()):?> 
<?php while (Have_posts ()): The_post ();?> 
 
<?php 
$ Szpostcontent = $post->post_content; 
$szSearchPattern = ' ~]*/>~ '; 
 
Run Preg_match_all 
to grab the images and save the results in $aPics preg_match_all ($szSearchPattern, $szPostC Ontent, $aPics); 
 
Check to the if we have at least 1 image 
$iNumberOfPics = count ($aPics [0]); 
 
if ($iNumberOfPics > 0) {//Now, you are would do whatever your need to doing with the 
   images/for this 
   exam Ple the images are just displayed for 
   ($i =0; $i < $iNumberOfPics; $i + +) { 
     echo $aPics [0][$i]; 
}; 
 
Endwhile; 
endif 

Automatically generate a smiley face pattern
Another method used by WordPress, this code allows you to automatically change the image of a smiley face symbol

$texte = ' A text with a smiley '; 
echo str_replace (':-) ', '  ', $texte); 

Remove a link from a picture

<meta http-equiv= "Content-type" content= "text/html; Charset=utf-8 "/> 
<?php 
  $str = ' 
    <a href= ' http://www.5idev.com/' >5idev</a> other characters 
    <a href= "http://www.sohu.com/" >sohu</a> <a href= "http://www.sohu.com/" ></a> 
    <br>"; 
 
 
  echo Preg_replace ("/(<a.*?>) () (<\/a>)/", ' $ ', $str);  
  echo Preg_replace ("/(<a.*?>) () (<\/a>)/", ' \2 ', $str);  

The above is 15 super practical PHP Regular expression, hope to be helpful to everybody's study.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.