php代码问题?

yuanxianfeng 2004-08-09 09:11:10
<?php
$s="http://:";
$se='';
foreach ($_GET as $key => $value) {
$se.=$key."=".$value."&";
}
$se=Preg_Replace("/(.*)&$/","",$se);
$se?$se="?".$se:"";
echo $s."?$se";
?>
以上代码为什么显示
http://:?
有什么问题,我是个新手 ?谢谢
...全文
41 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
turtlevan 2004-08-09
$se=Preg_Replace("/(.*)&$/","",$se);
这一句,看起来你是想把最后一个&符号去掉
但是你的代码结果是,如果$se以&结尾,
把$se整个替换成空

于是,如果$_GET中有值,
$se就是以&结尾的
不然$se就是空
到了上面这一行
$se总是空

$se?$se="?".$se:"";
这一行,$se是空,就把它前面加个?
不然就不变
到这里,$se="?"


你的代码应该这么写


$s="http://:";
$se='';
foreach ($_GET as $key => $value) {
$se.=$key."=".$value."&";
}
//下面这一行有变化
$se=Preg_Replace("/\&$/","",$se);
$se?$se="?".$se:"";
echo $s."?$se";
回复
yuanxianfeng 2004-08-09
还是一样啊
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-08-09 09:11
社区公告
暂无公告