$link = http://site.com/view/page.php?id=50&reviews=show
我们如何在id=50
之后添加&extra=video
?PHP更新变量中的url
id
总是数字。- 网址可以有后
?id=50
&extra=video
应该第一&
前加入许多其他的变量和50
(的id
值)后
将这样使用:
echo '<a href="' . $link . '">Get video</a>';
谢谢。
$link = http://site.com/view/page.php?id=50&reviews=show
我们如何在id=50
之后添加&extra=video
?PHP更新变量中的url
id
总是数字。?id=50
&extra=video
应该第一&
前加入许多其他的变量和50
(的id
值)后将这样使用:
echo '<a href="' . $link . '">Get video</a>';
谢谢。
ID是否始终是第一个帖子参数?如果是这样,那么你可以做一些字符串操作。使用strpos($link, "&")
找出你想插入的位置。然后根据该位置做几个substr()
,然后将它们全部附加在一起。我知道它的那种哈克,但它肯定会起作用。
$pos = strpos($link, "&");
$first = substr($link, 0, $pos);
$last = substr($link, $pos);
$extra = "&extra=video";
$newLink = $first . $extra . $last;
请参阅此链接一些我上面提到的字符串处理函数:http://us3.php.net/strings
使用字符串函数进行url解析可能会产生意外的结果(特别是无效的url),用于不同的url ... – 2010-08-05 14:11:57
我同意。因此,为什么我问这是否是第一个后期参数,并表示这是一个拙劣的解决方案。我并不为此感到自豪,但它的早期... – Siege898 2010-08-05 14:18:29
由于Treffynnon说,订单罕事项。不过,如果你真的需要的,如果由于某种原因,只是用
parse_url
得到查询字符串parse_str
创建参数array_splice
注入参数http_build_query
重建一个正确的查询字符串我会建议使用函数指定ically针对URL解析,不是一般的字符串函数:
$link = 'http://site.com/view/?id=50&reviews=show';
$query = array();
parse_str(parse_url($link, PHP_URL_QUERY), $query);
$query['extra'] = 'video';
$linkNew = http_build_url($link, array('query' => http_build_query($query)));
我真的很喜欢'http_build_url',但应该提到默认情况下不包括pecl HTTP扩展。 – Wrikken 2010-08-05 14:22:26
这会为你做它
<?php
$linkArray = explode('&',$link);
$linkArray[0] += '&extra=video';
$link = implode('&',$linkArray);
?>
爆炸将在每个&拆分链路串,所以也就没有在意网址中有多少元素。
第一个元素,将包括第一个&符号前的id = ##。所以我们追加任何你想要出现的东西。
我们再次将我们的数组放在一起作为一个字符串,将每个元素分开一个&。
为什么字符串中的位置如此重要?无论它的位置如何,它仍然会被解释为查询字符串属性。将它附加到URL显然会更容易。 – Treffynnon 2010-08-05 14:02:23
你几分钟前刚刚问过这个问题。那么有一个很好的答案,现在有什么不同? – 2010-08-05 14:05:05
@Scott桑德斯问题被删除,该解决方案不起作用。 – James 2010-08-05 14:07:49