2011-06-29 78 views
1

谁能帮我用GET网址玩,比如我有一个像这样的链接:发挥与PHP GET

?id=5&lang=1 

所以我的问题是我怎么能做出这样一句:

?id=5,1 

我不想显示&lang,只有我想要的是用&lang来替换,“逗号”谁能帮助我?

+1

为什么不使用$ _POST?会议?饼干 ? – Tarek

+1

@Tarek,因为我使用的链接 – Nickol

回答

0
$id = $id . ',' . $lang; 
<a href="?<?php echo $id; ?>"> 

+0

我认为@Nickol意味着他/她想要解析一个这样的URL(可能) –

+0

@brendan:如果是有大量的重复爆炸功能 – dynamic

3

你是能够做到这一点,但它不是很干净,在适当的$_GET变量值的条款。该解决方案可以自动类型转换值到整数:

sscanf($_GET['id'], '%d,%d', $id, $lang); 
// $id = int(5) 
// $lang = int(1) 
4

您可以使用mod_rewrite改写?id=5,1?id=5&lang=1内部。

否则,id值将是5,1。然后您的申请将需要知道id包含多于id。然后它可以从id中解析出语言。但是,当您引入更多参数时,这会变得令人困惑。

4

假设你已经建立在您指定的方式URL,可以打破基于逗号id字段,并提取真实身份识别码和郎场

$urlPieces = explode(",", $_GET['id']); 
$id = $urlPieces[0]; 
$lang = $urlPieces[1]; 
1

两个解决方案:

首先,您可以在参数到达PHP程序时简单地重新设置参数的格式。通过?id=5,1,您将获得一个PHP $_GET阵列,其中id'5,1'。这可以简单地使用explode()函数进行分割以获得所需的两个值。

第二种解决方案是使用Apache mod_rewrite功能,修改URL参数,他们在PHP到达之前。为此,你需要理解正则表达式(正则表达式),因为mod_rewrite使用它来完成工作。你应该谷歌“mod_rewrite”和“正则表达式”了解更多。

但mod_rewrite通常用于完全摆脱GET参数。例如,本网站上的问题的URL没有任何获取参数,但服务器将斜线之间的参数转换为GET参数。这被认为比改变参数的外观更好,因为它更方便用户和搜索引擎优化。

希望有所帮助。