$link = http://site.com/view/page.php?id=50&reviews=show
我们如何在&extra=video
之后添加id=50
?
id
始终为数字。?id=50
&extra=video
应在第一个&
之前和50
之后添加(id
的值它将以这种方式使用:
echo '<a href="' . $link . '">Get video</a>';
感谢。
答案 0 :(得分:2)
正如Treffynnon所说,这个命令很少发生。但是,如果确实需要,出于某种原因,只需使用
parse_url
获取查询字符串parse_str
创建参数数组array_splice
注入参数http_build_query
重建正确的查询字符串答案 1 :(得分:2)
这将为你做到
<?php
$linkArray = explode('&',$link);
$linkArray[0] += '&extra=video';
$link = implode('&',$linkArray);
?>
爆炸将在每个&amp;分割链接字符串,因此它不关心您在网址中有多少元素。
第一个元素,包括第一个&amp;之前的id = ##。标志。所以我们追加你想要的东西。
我们将数组再次作为字符串放在一起,用&amp;分隔每个元素。
答案 2 :(得分:1)
ID始终是第一个post参数吗?如果是这样,那么你可以jsut做某种字符串操作。使用strpos($link, "&")
找出要插入的位置。然后根据该位置执行一些substr()
,然后将它们全部附加在一起。我知道它的那种hacky,但肯定会有效。
$pos = strpos($link, "&");
$first = substr($link, 0, $pos);
$last = substr($link, $pos);
$extra = "&extra=video";
$newLink = $first . $extra . $last;
请参阅此链接,了解我上面提到的一些字符串操作函数:http://us3.php.net/strings
答案 3 :(得分:1)
我建议使用专门针对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)));