导读:CMS教程CMS教程通过二开新增的这个标签可以实现按指定的字符进行遍历,不填写char参数默认使用逗号进行分割遍历。如下图: 图中想把abcd用竖线进行分割,也可以使用逗号或其他自seo网站排名优化软件网seo优化趋势。
通过二开新增的这个标签可以实现按指定的字符进行遍历,不填写char参数默认使用逗号进行分割遍历。如下图: 图中想把abcd用竖线进行分割,也可以使用逗号或其他自定义符号 然后前台用新增的标签进行遍历调用 {pboot:foreachstr={label:hotkey}char=|} ahref=/search/?keyword=[for建设网站公司each:name]target=_blankrel=nofollow[foreach:name]/a {/pboot:foreach} 修改步骤 1、打开\apps\ho […]
通过二开新增的这个标签可以实现按指定的字符进行遍历,不填写char参数默认使用逗号进行分割遍历。如下图:
图中想把abcd用竖线进行分割,也可以使用逗号或其他自定义符号
然后前台用新增的标签进行遍历调用
{pboot:foreach str={label:hotkey} char=|}
<a href="/search/?keyword=[foreach:name]" target="_blank" rel="nofollow">[foreach:name]</a>
{/pboot:foreach}
修改步骤
1、打开\apps\home\controller\ParserController.php,搜索“$this->parserReplaceKeyword”,在其下方增加:
$content = $this->parserForeachLabel($content); // 指定随意内容按条件遍历 @pbhtml
2、继续在之前文件里搜索“解析生成内容链接”,在其上方增加:
// 解析指定随意内容遍历,支持设定分隔符 @pbhtml
public function parserForeachLabel($content)
{
$pattern = '/\{pboot:foreach(\s+[^}]+)?\}([\s\S]*?)\{\/pboot:foreach\}/';
$pattern2 = '/\[foreach:([\w]+)(\s+[^]]+)?\]/';
if (preg_match_all($pattern, $content, $matches)) {
$count = count($matches[0]);
for ($i = 0; $i < $count; $i ++) {
// 获取调节参数
$params = $this->parserParam($matches[1][$i]);
$str = '';
$char = ',';
if (! self::checkLabelLevel($params)) {
$content = str_replace($matches[0][$i], '', $content);
continue;
}
// 分离参数
foreach ($params as $key => $value) {
switch ($key) {
case 'num':
$num = $value;
break;
case 'str':
$str = $value;
break;
case 'char':
if ($value) $char = $value;
break;
}
}
// 无数据直接替换为空并跳过
if (! $str) {
&网站seo优化课程nbsp; $content = str_replace($matches[0][$i], '', $content);
continue;
}
// 匹配到内部标签
if (preg_match_all($pattern2, $matches[2][$i], $matches2)) {
$count2 = count($matches2[0]); // 循环内的内容标签数量
} else {
$count2 = 0;
}
$out_html = '';
$key = 1;
$arr = explode($char,$str);
foreach ($arr as $value) { // 按查询图片条数循环
$one_html = $matches[2][$i];
for ($j = 0; $j < $count2; $j ++) { // 循环替换数据
$params = $this->parserParam($matches2[2][$j]);
switch ($matches2[1][$j]) {
case 'n':
$one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key) - 1, $one_html);
break;
&nb个业网站建设公司sp; case 'i':
$one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key), $one_html);
break;
case 'name':
$one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value), $one_html);
break;
}
}
$key ++;
$out_html .= $one_html;
if (isset($num) && $key > $num) {
unset($num);
break;
}
}
$content = str_replace($matches[0][$i], $out_html, $content);
}
}
return $content;
}
关键词标签: 标签 遍历
声明: 本文由我的SEOUC技术文章主页发布于:2023-05-25 ,文章pbootcms增加foreach标签指定内容按条件遍历CMS教程主要讲述标签,遍历,pbootcms增加foreach标签指定内容按网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_8200.html