php筛选输出html (已提供条件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php筛选输出html (已提供条件)相关的知识,希望对你有一定的参考价值。
//这是正则筛选的条件----------------------------------------------
<?php
$str = $_SERVER['REQUEST_URI'];
$p = "/.*\/=(\d+)/"; //匹配url末尾"/=数字/" (例如"/=24/"))
preg_match($p,$str,$res);
echo $res[1]; //输出为38 如当前地址为 www.baidu.com/ffffff/=38/
?>
//这是模板里一个循环输出链接的例子----------------------------------------------
<?php while ($cate->next()): ?>
<?php if(!$cate->parent): ?>
<a href="<?php $cate->permalink(); ?>"><?php $cate->name(); ?></a>//输出链接
<?php endif;?>
<?php endwhile; ?>
比如现在由以上输出四个链接 分别是
http://localhost/2/data/product/=28/
http://localhost/2/news/product/=33/
http://localhost/2/pics/product/=45/
http://localhost/2/goods/product/=27/
浏览器的链接是http://localhost/2/news/product/=33/
通过正则echo $res[1]; 取到是33
应该怎么写 让我只输出这一个链接?
<a href="http://localhost/2/news/product/=33/">33</a>
就是这段 怎么加个条件 让他输出的结果 只有一条符合echo $res[1];
<?php while ($cate->next()): ?>
<?php if(!$cate->parent): ?>
<a href="<?php $cate->permalink(); ?>"><?php $cate->name(); ?></a>//输出链接
<?php endif;?>
<?php endwhile; ?>
.....各位都在回答什么啊....-_-#
你可以在模板里,先匹配出当前URL那个数字,然后在while里面加判断,是就输出,不然不输出。
<body>..html代码...
<?php
$str = $_SERVER['REQUEST_URI'];
$p = "/.*\\/=(\\d+)/";
$res = array();
preg_match($p,$str,$res);
$cur_url_num = $res[1]; // Hold住,模板里面用变量存起来
?>
<?php while ($cate->next()): ?>
<?php if(!$cate->parent): ?>
<!-- 检查即将输出的URL是否含有目标数字,是就echo -->
<?php if(strpos($cate->permalink(), '='.$cur_url_num) !== false): ?>
<a href="<?php $cate->permalink(); ?>"><?php $cate->name(); ?></a>
<?php endif;?>
<?php endif;?>
<?php endwhile; ?>
..html代码...
</body>
其实就是多一个步骤,判断是否你要的URL而已,另外推荐你先检查有没有直接输出当前循环下的ID,例如$cate->id();什么的,有就这个判断:if($cate->id() == $cur_url_num):
答非所问.
以上是关于php筛选输出html (已提供条件)的主要内容,如果未能解决你的问题,请参考以下文章