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://:?
有什么问题,我是个新手 ?谢谢
...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
还是一样啊

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧