php 提取替换指定html内的标签
<strong>开心</strong><li>数列1</li><li>数列2</li><li>数列3</li><strong>无聊</strong><li>数列4</li...
<strong>开心</strong>
<li>数列1</li>
<li>数列2</li>
<li>数列3</li>
<strong>无聊</strong>
<li>数列4</li>
<li>数列5</li>
<li>数列6</li>
<strong>兴奋</strong>
<li>数列7</li>
<li>数列8</li>
<li>数列9</li>
<strong>沮丧</strong>
<li>数列10</li>
<li>数列11</li>
<li>数列12</li>
问题一:提取<strong>标签内的内容的前3个
想要达到的效果为:开心,无聊,兴奋
问题二:提取<strong>标签内的所有内容,并加序列号和html标签
想要达到的效果为:<li>1、开心</li><li>2、无聊</li><li>3、兴奋</li><li>4、沮丧</li>
问题三:第1个<strong>不替换,将从第2个开始的<strong>替换成</ul><strong>,并且将从第1个开始的</strong>替换成</strong><ul>
想要达到的效果为:
<strong>开心</strong><ul>
<li>数列1</li>
<li>数列2</li>
<li>数列3</li>
</ul><strong>无聊</strong><ul>
<li>数列4</li>
<li>数列5</li>
<li>数列6</li>
</ul><strong>兴奋</strong><ul>
<li>数列7</li>
<li>数列8</li>
<li>数列9</li>
</ul><strong>沮丧</strong><ul>
<li>数列10</li>
<li>数列11</li>
<li>数列12</li>
先谢谢了
不懂这些,请直接给出问题1、2、3的答案 展开
<li>数列1</li>
<li>数列2</li>
<li>数列3</li>
<strong>无聊</strong>
<li>数列4</li>
<li>数列5</li>
<li>数列6</li>
<strong>兴奋</strong>
<li>数列7</li>
<li>数列8</li>
<li>数列9</li>
<strong>沮丧</strong>
<li>数列10</li>
<li>数列11</li>
<li>数列12</li>
问题一:提取<strong>标签内的内容的前3个
想要达到的效果为:开心,无聊,兴奋
问题二:提取<strong>标签内的所有内容,并加序列号和html标签
想要达到的效果为:<li>1、开心</li><li>2、无聊</li><li>3、兴奋</li><li>4、沮丧</li>
问题三:第1个<strong>不替换,将从第2个开始的<strong>替换成</ul><strong>,并且将从第1个开始的</strong>替换成</strong><ul>
想要达到的效果为:
<strong>开心</strong><ul>
<li>数列1</li>
<li>数列2</li>
<li>数列3</li>
</ul><strong>无聊</strong><ul>
<li>数列4</li>
<li>数列5</li>
<li>数列6</li>
</ul><strong>兴奋</strong><ul>
<li>数列7</li>
<li>数列8</li>
<li>数列9</li>
</ul><strong>沮丧</strong><ul>
<li>数列10</li>
<li>数列11</li>
<li>数列12</li>
先谢谢了
不懂这些,请直接给出问题1、2、3的答案 展开
2个回答
推荐于2018-01-08 · 知道合伙人软件行家
关注
展开全部
试编写代码供参考:
<?php
$content = <<< TTTT
<strong>开心</strong>
<li>数列1</li>
<li>数列2</li>
<li>数列3</li>
<strong>无聊</strong>
<li>数列4</li>
<li>数列5</li>
<li>数列6</li>
<strong>兴奋</strong>
<li>数列7</li>
<li>数列8</li>
<li>数列9</li>
<strong>沮丧</strong>
<li>数列10</li>
<li>数列11</li>
<li>数列12</li>
TTTT;
/*
$pattern = '%<strong>(.*?)</strong>%i';
preg_match_all($pattern,$content ,$matches, PREG_PATTERN_ORDER);
echo '问题一:提取标签内的内容的前3个:<br/>'. "\r\n";
echo $matches[1][0] . ',' . $matches[1][1] . ',' . $matches[1][2] . '<br/><br/>';
echo "\r\n". "\r\n";
echo '问题二:提取标签内的所有内容,并加序列号和html标签:<br/>'. "\r\n";
for ($i=0;$i<count($matches[1]);$i++) {
echo '<li>' . ($i+1) . '、' . $matches[1][$i] . '</li>' . "\r\n";
}
echo '<br/>';
echo "\r\n";
echo '问题三:替换成:<br/>'. "\r\n";
$pattern = '%<strong>(.*?)</strong>%i';
$temp = preg_replace($pattern, '</ul><strong>\1</strong><ul>',$content);
$temp = substr($temp,5).'</ul>';
echo $temp;
*/
$index = 0;
function doReplace($matches)
{
global $index;
$index++;
if ($index<2) {
return $index. '. ' . $matches[0]. '<ul>';
} else {
return '</ul>' . $index. '. ' . $matches[0].'<ul>';
}
}
echo '问题三1:在每一个替换的 strong 前面也加上序列号:<br/>'. "\r\n";
echo "\r\n";
$pattern = '%<strong>(.*?)</strong>%i';
$temp = preg_replace_callback($pattern, 'doReplace',$content);
echo $temp.'</ul>';
?>
运行截图:
生成的 HTML 代码:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询