如果数组不存在,则从现有 URL 将数组插入到页面链接 url 中创建数组,将默认值插入到页面上的 href 链接中
Posted
技术标签:
【中文标题】如果数组不存在,则从现有 URL 将数组插入到页面链接 url 中创建数组,将默认值插入到页面上的 href 链接中【英文标题】:create array from existing URL insert array into on page link url if array does not exist insert default values into on page href link instead 【发布时间】:2012-09-11 07:36:00 【问题描述】:我在 wordpress 中使用 php 短代码 exec 在帖子和页面中执行 PHP
我想从 URL 中获取变量并将它们插入到页面上的 href URL 链接中,但如果 URL 中不存在变量,我想插入默认值。
例如如果 url 有像http://mysite.com/?var1=123&var2=456&var3=789这样的变量
页面上的网址应该是 href="http://othersite.com/?var1=123&var2=456&var3=789
如果网址是:http://mysite.com/ 网站上的链接应该是 href="http://othersite.com/?var1=abc&var2=def&var3=ghi
我是 PHP 新手,很抱歉我没有损坏的代码供您修复,我从头开始。
谢谢!!
【问题讨论】:
【参考方案1】:$_GET 包含发送的参数。
所以下面的(未经测试的)会给你一个想法。
// Set your default values
$aValues = array(
'var1' => 12,
'var2' => 12,
'var3' => 12
);
// Now run through the default values to see if they were sent with $_GET
foreach ($aValues as $key=>$value)
// Isset does the check to see if they were sent
if (isset($_GET[$key]))
$aValues[$key] = $_GET[$key];
$url = 'http://mysite.com/?' . http_build_query($aValues);
【讨论】:
【参考方案2】:$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
=== FALSE ? 'http' : 'https';
$host = $_SERVER['HTTP_HOST'];
$script = $_SERVER['SCRIPT_NAME'];
$params = $_SERVER['QUERY_STRING'];
$currentUrl = $protocol . '://' . $host . $script . '?' . $params;
if(isset($_GET["var"]))
echo $currentUrl;
else echo "yourwebsite with defualt vars"
将当前 url 设置为 $currentUrl 变量。 如果语句检查是否设置了 var,如果是,则回显
【讨论】:
以上是关于如果数组不存在,则从现有 URL 将数组插入到页面链接 url 中创建数组,将默认值插入到页面上的 href 链接中的主要内容,如果未能解决你的问题,请参考以下文章
php 在数组中的特定键之前插入值或键/值对。如果key不存在,则值将预先添加到数组的开头。