PHP更新变量中的url
如何在PHP更新变量中的url,php,string,Php,String,如何在id=50之后添加&extra=video id始终是数字 url在?id=50之后可以有许多其他变量 &extra=video应添加在第一个&之前和50之后(id的值) 它将以这种方式使用: $link = http://site.com/view/page.php?id=50&reviews=show echo'; 谢谢。ID总是第一个post参数吗?如果是这样,那么您可以执行某种字符串操作。使用strpos($link,&“)查找要插入的位置。然后根据该位置执行一些s
id=50
之后添加&extra=video
始终是数字id
- url在
?id=50之后可以有许多其他变量
应添加在第一个&extra=video
之前和&
之后(id的值)50
$link = http://site.com/view/page.php?id=50&reviews=show
echo';
谢谢。ID总是第一个post参数吗?如果是这样,那么您可以执行某种字符串操作。使用
strpos($link,&“)
查找要插入的位置。然后根据该位置执行一些substr()
,然后将它们全部附加在一起。我知道这有点老套,但肯定会管用的
echo '<a href="' . $link . '">Get video</a>';
有关我上面提到的一些字符串操作函数,请参见此链接:正如特雷弗农所说,顺序无关紧要。但是,如果出于某种原因确实需要if,只需使用
获取查询字符串parse_url
创建参数数组parse\u str
以插入参数阵列拼接
重新生成正确的查询字符串http\u build\u query
$pos = strpos($link, "&");
$first = substr($link, 0, $pos);
$last = substr($link, $pos);
$extra = "&extra=video";
$newLink = $first . $extra . $last;
这会帮你的
$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)));
为什么字符串中的位置如此重要?无论其位置如何,它仍将被解释为查询字符串属性。显然,将其附加到url会更容易。您几分钟前刚刚问过这个问题。当时有一个很好的答案,现在有什么不同?@Scott Saunders的问题被删除,该解决方案不起作用。
$link.='&extra=video'代码>除非你能为你的约束证明需要在查询中间显式地定位“Ext=视频”string@Treffynnon我已经更新了这个问题。事实上,url很长,我不知道它到底是如何结束的。表单中使用了post方法,它提供了许多post变量。只是想添加这段代码并正常工作,似乎在id=50后添加变量并不是bas解决方案,我会看到它并知道一切都正常。使用字符串函数进行url解析可能会对不同的url产生意外的结果(特别是无效的url)…我同意。因此,为什么我问它是否是第一个post参数,并说这是一个黑客解决方案。我不为它感到骄傲,但它很早……我真的很喜欢http\u build\u url
,但应该提到的是,默认情况下不包括pecl http扩展。
<?php
$linkArray = explode('&',$link);
$linkArray[0] += '&extra=video';
$link = implode('&',$linkArray);
?>