2009七月27
php 善用临时变量
昨天在更改友情链接的时候,不想走数据库了,这样可以少用一个插件,还能减少查询,干脆把所有友情链接都放在数组里这样只需要循环一遍就好了。
于是在sidebar.php的右侧,列位所见的三列友链就是我昨天用表格弄出来的,没办法咱不会CSS,只能用table将就啦。但是问题就来了,因为我想每行显示三列,可是循环的时候啥时候输入<tr>又啥时候输入</tr>呢?
于是想到了临时变量,因为我一行显示三个,所以变量只需要从0开始到3结束就好,这样在变量是0的时候,输入<tr>在3的时候输入</tr>其余1-3的时候都输入td标签就可以了。嗯。具体代码如下:
//友情链接数组
$links = array(
array("url"=>"http://www.xingzou.org/", "name"=>"行走XingZou", "title"=>"可爱的小乌鸦"),
array("url"=>"http://hengtian.org/", "name"=>"衡天小张主机", "title"=>"信小张得永生"),
array("url"=>"http://www.i1981.com/", "name"=>"白天的影子", "title"=>"太原天影网络工作室"),
array("url"=>"http://www.yueye.info/", "name"=>"越夜的日志", "title"=>"有珠宝首饰的卖,有婚戒项链的卖"),
array("url"=>"http://www.newcoin.info/", "name"=>"还是那只鱼", "title"=>"关注大型机技术"),
array("url"=>"http://www.52yyx.com/", "name"=>"看海", "title"=>"看海,想学PHP的JAVA工程师")
);
$links = array(
array("url"=>"http://www.xingzou.org/", "name"=>"行走XingZou", "title"=>"可爱的小乌鸦"),
array("url"=>"http://hengtian.org/", "name"=>"衡天小张主机", "title"=>"信小张得永生"),
array("url"=>"http://www.i1981.com/", "name"=>"白天的影子", "title"=>"太原天影网络工作室"),
array("url"=>"http://www.yueye.info/", "name"=>"越夜的日志", "title"=>"有珠宝首饰的卖,有婚戒项链的卖"),
array("url"=>"http://www.newcoin.info/", "name"=>"还是那只鱼", "title"=>"关注大型机技术"),
array("url"=>"http://www.52yyx.com/", "name"=>"看海", "title"=>"看海,想学PHP的JAVA工程师")
);
//循环上面的数组,借用临时变量$number
$number = 0;
foreach($links as $key=>$link)
{
if($number == 0)
{
echo "<tr>";
}
$number ++;
echo "<td><a href='".$link['url']."' target='_blank' title='".$link['title']."'>".$link['name']."</a></td>";
if($number == 3)
{
$number = 0;
echo "</tr>";
}
}
$number = 0;
foreach($links as $key=>$link)
{
if($number == 0)
{
echo "<tr>";
}
$number ++;
echo "<td><a href='".$link['url']."' target='_blank' title='".$link['title']."'>".$link['name']."</a></td>";
if($number == 3)
{
$number = 0;
echo "</tr>";
}
}
大家仔细看上面的 $number++那里哦。呵呵,虽然做法比较山寨,但是总算是解决了问题,列位谁有好的方法一起分享一下哈。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/07/27/1253/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
囧啊 这个是杀鸡用宰牛刀
直接在模板里用html写死 就OK鸟
[回复]
我是直接编辑的SIDEBAR,纯手工打造的 :D
[回复]
@Showfom
我不这样认为。因为如果用HTML写死的话,以后新增或者删除一个你就哭了。
改动很大的,但是用PHP循环就不会, :P
[回复]
@LAONB
影子 推荐用UL LI ,可是我不懂样式,所以没办法了。呵。
[回复]
foreach里这样这与感觉要简单点:
[code]
$i = 0;
foreach($links as $link){
echo '<a href="'. $link['url'] .'" rel="nofollow">'. $link['name'] .'</a>';
$i ++;
if($i % 3 == 0){
echo '';
}
}
[/code]
[回复]
@JetKing
呵呵,取余,确实更好看一些。当时没转过来弯,呵呵。
[回复]
呃..发的echo后面的HTML被直接显示了
[回复]
@simaopig
您回复得可真够快的
[回复]
@JetKing
呵,没事。我调整一下。呵呵。
[回复]
@simaopig
不哭不哭
我每次都手工改 哦哈哈~~~记得备份就OK
[回复]
@Showfom
我的意思是说,当你删除一个的话改动太大了。
当然如果你用LI的话,改动一点都不大。呵呵。
[回复]
@simaopig
噶啊,我就是用li 嘎嘎
[回复]
我友链的名字都比较长,2列都装不下,更不要说3列了…
[回复]
三列感觉有点挤哈,还是两列好
[回复]
@hslx111
我也把名字删了点。呵呵。
[回复]
@goldapple
两列显示的太长了。看着不爽。
[回复]
@simaopig
UL无序列表比较利于SEO了,据说TD的表格过于复杂,所以会增加爬行时间。 :D
[回复]
@LAONB
饿,我倒是发现,说我DOM层次太多了些,有空再改。
[回复]
友情链接一
友情链接二
Css的话应该难不住博主吧
见笑!
数组读起来的效率还是不如直接HTML吧 呵呵
[回复]
@飞晏
用PHP的数组我个人感觉效率还可以。呵呵。
PS:CSS我不行。真的不行。呵。
[回复]