![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
php类似smarty模板引擎循环输出的问题
//foreach语句匹配模式,$modeForeach='/\{foreach\s+key=([\w]+)\s+item=([\w]+)\s+from=\$([\w]+...
//foreach语句匹配模式,
$modeForeach='/\{foreach\s+key=([\w]+)\s+item=([\w]+)\s+from=\$([\w]+)\}/';
$modeEndForeach='/\{\/foreach\}/';
$modeVar='/\{@([\w]+)\}/';
//在模板文件中匹配模式,如果匹配成功,则替换成相应的php语言中的foreach语句
if(preg_match($modeForeach,$content)){
if(preg_match($modeEndForeach,$content)){
$content =preg_replace($modeForeach,"<?php foreach(\$this->_tpl_var['$3'] as \$$1=>\$$2){ foreach(\$$2 as \$$1=>\$$2){?>",$content);
/* $content =preg_replace($modeForeach,"<?php foreach(\$this->_tpl_var['$3'] as \$$1=>\$$2){?>",$content); */
$content =preg_replace($modeVar,"<?php echo \$$1;?>",$content);
$content =preg_replace($modeEndForeach,"<?php }}?>",$content);
}else{
exit('Foreach语句没有关闭!');
}
}
//赋值语句
while ($row = $rs->fetch_assoc())
{
$artblog[$row['id']]=array($row['title']=>$row['content']);
// $artctime[$row['id']]= array($row['ctime']=>$row['column']);
}
//输出用{foreach key=key item=item from=$artblog}
提问:对应的foreach语句只能输出两个值,因为是文章博客,所以需要对应的标题,内容,栏目值,对应的修改时间值,发布用户值,好多的内容,请问下高手大概要怎么输出
这里发布不了全部的代码,或者可以帮我qq看一下全部代码. 展开
$modeForeach='/\{foreach\s+key=([\w]+)\s+item=([\w]+)\s+from=\$([\w]+)\}/';
$modeEndForeach='/\{\/foreach\}/';
$modeVar='/\{@([\w]+)\}/';
//在模板文件中匹配模式,如果匹配成功,则替换成相应的php语言中的foreach语句
if(preg_match($modeForeach,$content)){
if(preg_match($modeEndForeach,$content)){
$content =preg_replace($modeForeach,"<?php foreach(\$this->_tpl_var['$3'] as \$$1=>\$$2){ foreach(\$$2 as \$$1=>\$$2){?>",$content);
/* $content =preg_replace($modeForeach,"<?php foreach(\$this->_tpl_var['$3'] as \$$1=>\$$2){?>",$content); */
$content =preg_replace($modeVar,"<?php echo \$$1;?>",$content);
$content =preg_replace($modeEndForeach,"<?php }}?>",$content);
}else{
exit('Foreach语句没有关闭!');
}
}
//赋值语句
while ($row = $rs->fetch_assoc())
{
$artblog[$row['id']]=array($row['title']=>$row['content']);
// $artctime[$row['id']]= array($row['ctime']=>$row['column']);
}
//输出用{foreach key=key item=item from=$artblog}
提问:对应的foreach语句只能输出两个值,因为是文章博客,所以需要对应的标题,内容,栏目值,对应的修改时间值,发布用户值,好多的内容,请问下高手大概要怎么输出
这里发布不了全部的代码,或者可以帮我qq看一下全部代码. 展开
展开全部
模版引擎没有问题。
while ($row = $rs->fetch_assoc())
{
$artblog[$row['id']]=array($row['title']=>$row['content']);
// $artctime[$row['id']]= array($row['ctime']=>$row['column']);
}
你这里并没有把剩余的字段值赋值。
更多追问追答
追问
我知道没有赋值的,我想知道,要怎么赋值才能合理的输出啊.
追答
代码不是有吗?
$artblog[$row['id']]=array($row['title']=>$row['content']);
照着这个赋值吧
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
在北京引力弹弓科技有限公司,我们常使用Python处理各种任务。以下是一个简单的Python代码示例,用于计算两个数的和并打印结果:```python# 计算两个数的和def calculate_sum(a, b): return a...
点击进入详情页
本回答由MarsCode提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询