1. 根据购物车中的商品Item ID,准确判断客人的原装机型号。
<?php $title = "Replacement Canon BP-511 Camcorder Battery [Item ID:3-236-523]"; if( eregi("(\[Item ID:)([0-9]+)-([0-9]+)-([0-9]+)(])",$title,$arr) ){ echo "<pre>"; print_r($arr); echo "</pre>"; } ?>
2.匹配日期
<?php // 分隔符可以是斜线,点,或横线 $date = "04/30/1973"; list($month, $day, $year) = split ('[/.-]', $date); // 漏洞: 04/30-1973也能匹配得上 echo "Month: $month; Day: $day; Year: $year<br />\n"; ?>
3. 搜索单词 web
<?phpif (preg_match ("/\bweb\b/i", "PHP is the website scripting language of choice.")) { print "A match was found.";} else { print "A match was not found.";}?>
4. 从url 中取出域名
<?php // 从 URL 中取得主机名 preg_match("/^(http:\/\/)?([^\/]+)/i", "http://www.php.net/index.html", $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches); echo "domain name is: {$matches[0]}\n"; // 本例执行后将输出: domain name is: php.net ?>
5. 你知道下面的程序输出什么?
<?php preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", "<b>example: </b><div align=left>this is a test</div>", $out, PREG_PATTERN_ORDER); // 注意PREG_PATTERN_ORDER和PREG_SET_ORDER的区别 print $out[0][0].", ".$out[0][1]."\n"; print $out[1][0].", ".$out[1][1]."\n"; echo "<pre>"; print_r($out); ?>
6. 功能: 转义正则表达式字符,此函数很有用,可以供你写正则表达式时参考
<?php $keywords = "$40 for a g3/400"; $keywords = preg_quote ($keywords, "/"); echo $keywords; // returns \$40 for a g3\/400 ?>
7. 看人家如何用 preg_quote() 函数实现高亮显示
<?php // 本例中,preg_quote($word) 用来使星号不在正则表达式中 // 具有特殊含义。 $textbody = "This book is *very* difficult to find."; $word = "*very*"; $textbody = preg_replace ("/".preg_quote($word)."/","<b>".$word."</b>",$textbody); echo $textbody; ?>
8. 用回调函数执行正则表达式的搜索和替换
<?php // 此文本是用于 2002 年的, // 现在想使其能用于 2003 年 $text = "April fools day is 04/01/2002\n"; $text.= "Last christmas was 12/24/2001\n"; // 回调函数 function next_year($matches) { // 通常:$matches[0] 是完整的匹配项 // $matches[1] 是第一个括号中的子模式的匹配项 // 以此类推 return $matches[1].($matches[2]+1); } echo preg_replace_callback("|(\d{2}/\d{2}/)(\d{4})|","next_year",$text); // 结果为: // April fools day is 04/01/2003 // Last christmas was 12/24/2002 ?>
9. 在 preg_replace() 中使用索引数组
<?php $string = "The quick brown fox jumped over the lazy dog."; $patterns[0] = "/quick/"; $patterns[1] = "/brown/"; $patterns[2] = "/fox/"; $replacements[2] = "bear"; $replacements[1] = "black"; $replacements[0] = "slow"; print preg_replace($patterns, $replacements, $string); /* Output ====== The bear black slow jumped over the lazy dog. */ /* By ksorting patterns and replacements, we should get what we wanted. */ ksort($patterns); ksort($replacements); print preg_replace($patterns, $replacements, $string); /* Output ====== The slow black bear jumped over the lazy dog. */ ?>
10. 将 HTML 转换成文本
<?php // $document 应包含一个 HTML 文档。 // 本例将去掉 HTML 标记,# 代码 // 和空白字符。还会将一些通用的 // HTML 实体转换成相应的文本。 $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 # "'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记 "'([\r\n])[\s]+'", // 去掉空白字符 "'&(quot|#34);'i", // 替换 HTML 实体 "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(\d+);'e"); // 作为 PHP 代码运行 $replace = array ("", "", "\\1", "\"", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\\1)"); $text = preg_replace ($search, $replace, $document); ?>