codetc - 网站开发技术 首页 代码 PHP 查看内容

常用的PHP正则表达式使用实例

2015-1-13 23:34| 发布者: CODETC| 查看: 4130| 评论: 0

上一篇我们讲述了PHP正则表达式的基本语法和常用函数,相信大家对正则表达式在PHP中的运用也有了一定的了解,下面提供一些在PHP开发中经常用到的正则匹配实例代码片段,包括邮箱地址验证、用户名验证、IP地址验证、电话号码和邮编验证等,其中大部分可以直接使用,某些可以根据需求进行少量修改便可。
其实之前我们也有提供过一些类似的资源,常用的JS正则表达式验证函数,主要是在用于前端初步验证用户输入信息的一些方法。

从字符串中删除特定字符
<?php
$value = "wWw.Codetc.Com - 【Php网站开发技术】 - 1250";
$value = preg_replace("/[^A-Za-z0-9]/","",$value);
echo $value;
?>
输出:wWwCodetcComPhp1250

本段代码实现删除字符串中除所有大小写字母及数字以外的字符。

验证用户名

以下代码验证用户名是否由字母、数字及下划线组成,长度为5至20个字符。
<?php
$username = "codetc_User123";
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
	echo "用户名可用";
} else {
	echo "用户名存在特殊字符";
}
?>

为图片alt属性添加信息

使用下面函数,可以实现将文章标题添加到图片的alt属性中。
<?php
function add_alt_tags($content)
{
	preg_match_all('/<img (.*?)\/ >/', $content, $images);
	if(!is_null($images))
	{
		foreach($images[1] as $index => $value)
		{
			if(!preg_match('/alt=/', $value))
			{
				$new_img = str_replace('<img', '<img alt="'.get_the_title().'"', $images[0][$index]);
				$content = str_replace($images[0][$index], $new_img, $content);
			}
		}
	}
	return $content;
}
?>

为email地址文本自动添加mailto链接
<?php
$text = "demo@codetc.com";
$string = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})','<a href="mailto:\\1">\\1</a>', $text);
echo $string;
?>

过滤限制级词语
<?php
function filtrado($texto, $reemplazo = false)
{
	$filtradas = 'admin,codetc,网站开发'; //这里定义需要过滤的词语
	$f = explode(',', $filtradas);
	$f = array_map('trim', $f);
	$filtro = implode('|', $f);
	return ($reemplazo) ? preg_replace("#$filtro#i", $reemplazo, $texto) : preg_match("#$filtro#i", $texto) ;
}
?>

验证电话号码

这是一个很常见的功能
<?php
$string = "(010) 555-5555";
if (preg_match('/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/', $string)) {
	echo "successful.";
}
?>

替换超链接href属性的内容
<?php
$html = '<a href="http://www.codetc.com">Codetc PHP网站开发</a>';
$replacement = "yes";
$pattern = '/(?<=href\=")[^]]+?(?=")/';
$replacedHrefHtml = preg_replace($pattern, $replacement, $html);
echo $replacedHrefHtml ;
?>
在页面上查看源文件,显示为:<a href="yes">Codetc PHP网站开发</a>

验证邮箱正则表达式

此功能在用户注册是经常使用
<?php
$email = "demo@codetc.com";
$regex = "([a-z0-9_.-]+)". # name
"@". # at
"([a-z0-9.-]+){2,255}". # domain & possibly subdomains
".". # period
"([a-z]+){2,10}"; # domain extension
$eregi = eregi_replace($regex, '', $email);
$valid_email = empty($eregi) ? true : false;
?>

IP地址验证
<?php
$string = "255.255.255.255";
if (preg_match(
'/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/',
$string)) {
	echo "IP address is good.";
}
?>

邮政编码验证
<?php
$string = "12345-1234";
if (preg_match('/^[0-9]{5}([- ]?[0-9]{4})?$/', $string)) {
	echo "zip code checks out";
}
?>

高亮显示文本
<?php
$text = "Codetc(www.codetc.com)PHP网站开发";
$text = preg_replace("/\b(www)\b/i", '<span style="background:#5fc9f6">\1</span>', $text);
echo $text;
?>

从特定的URL中提取域名
<?php
$url = "http://www.codetc.com/article-119-1.html";
preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
$host = $matches[1];
echo $host;
?>
输出:www.codetc.com

验证域名格式是否正确
<?php
$url = "http://www.codetc.com/";
if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
    echo "域名格式正确.";
} else {
    echo "域名格式错误.";
}
?>

添加http://到URL地址

当我们需要用户填写网址时,很多用户往往不填写http://直接输入域名,使用下面代码可将http://添加到网址的前面。
<?php
if (!preg_match("/^(http|https|ftp):/", $_POST['url'])) {
   $_POST['url'] = 'http://'.$_POST['url'];
}
?>

将URL转换为超链接

这是一个很有用的功能,他可以将url地址或email地址转换为可点击的超链接文本。
<?php
function makeLinks($text) {
	$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1', $text);
	$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1\2', $text);
	$text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','\1', $text);
	return $text;
}
?>
文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-120-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部