比如1.HTML文件如下<html>
<head>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
font-size:13px;
}
#nav{
margin:100px;
}
#nav li{
float:left;
list-style:none;
}
#nav li a{
padding:10px 20px;
display:block;
color:#000;
font-size:14px;
font-family:"微软雅黑";
}
</style>
<title>这是标题~....</title>
</head>
<body>
<ul id="nav">
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.baidu.com">谷歌</a></li>
<li><a href="http://www.yahu.com">雅虎</a></li>
<li><a href="http://www.biing.com">必应</a></li>
</ul>
</body>
</html>我现在想要匹配所有的CSS内容跟<li></li>之间的内容,其他内容不需要,
<head>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
font-size:13px;
}
#nav{
margin:100px;
}
#nav li{
float:left;
list-style:none;
}
#nav li a{
padding:10px 20px;
display:block;
color:#000;
font-size:14px;
font-family:"微软雅黑";
}
</style>
<title>这是标题~....</title>
</head>
<body>
<ul id="nav">
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.baidu.com">谷歌</a></li>
<li><a href="http://www.yahu.com">雅虎</a></li>
<li><a href="http://www.biing.com">必应</a></li>
</ul>
</body>
</html>我现在想要匹配所有的CSS内容跟<li></li>之间的内容,其他内容不需要,
<li>的:
$str=<<<eof
<body>
<ul id="nav">
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.baidu.com">谷歌</a></li>
<li><a href="http://www.yahu.com">雅虎</a></li>
<li><a href="http://www.biing.com">必应</a></li>
</ul>
</body>
eof;
preg_match_all('/<li[^>]*>(.*?)<\/li>/is',$str,$arr);
echo '<pre />';
print_r($arr);
header('content-type:text/html;charset=utf8');
$str = <<<longstr
<html>
<head>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
font-size:13px;
}
#nav{
margin:100px;
}
#nav li{
float:left;
list-style:none;
}
#nav li a{
padding:10px 20px;
display:block;
color:#000;
font-size:14px;
font-family:"微软雅黑";
}
</style>
<title>这是标题~....</title>
</head>
<body>
<ul id="nav">
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.baidu.com">谷歌</a></li>
<li><a href="http://www.yahu.com">雅虎</a></li>
<li><a href="http://www.biing.com">必应</a></li>
</ul>
</body>
</html>
longstr;
//匹配所有的样式表
preg_match('/<style\s+type="text\/css">(.*?)<\/style>/is',$str,$arr);
print_r($arr[1]);
preg_match('/<li>(.*)<\/li>/is',$str,$arrs);
print_r($arrs[1]);
$str = file_get_contents('test.html');
$pegCss = '/<\s*style\s*type=\"text\/css\"\s*>([^<]+)<\s*\/\s*style\s*>/i';
if (preg_match($pegCss,$str,$arr_match)) {
echo $arr_match[1];
}
$pegli = '/<li>.+<\s*\/\s*li\s*>/i';
if (preg_match_all($pegli,$str,$arr_match)) {
print_r($arr_match[0]);
}
header("Content-type:text/html;charset=gb2312");
$str = <<<html
<html>
<head>
<style type="text/css">
*{
margin:0;
padding:0;
}
body{
font-size:13px;
}
#nav{
margin:100px;
}
#nav li{
float:left;
list-style:none;
}
#nav li a{
padding:10px 20px;
display:block;
color:#000;
font-size:14px;
font-family:"微软雅黑";
}
</style>
<title>这是标题~....</title>
</head>
<body>
<ul id="nav">
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.baidu.com">谷歌</a></li>
<li><a href="http://www.yahu.com">雅虎</a></li>
<li><a href="http://www.biing.com">必应</a></li>
</ul>
</body>
</html>
html;
$reg1="/<style[^>]*>(.*?)<\/style>/is"; //匹配CSS的正则表达式
if(preg_match_all($reg1,$str,$arr))
{
echo "CSS部分:<br/>".$arr[1][0]."<br/>";
}
$reg2="/<li>(.*?)<\/li>/is";//匹配li的正则表达式
if(preg_match_all($reg2,$str,$arr))
{
foreach($arr[1] as $a)
{
echo "LI内容为:<br/><xmp>".$a."</xmp><br/>";
}
}
?>