如果数组不存在,则从现有 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不存在,则值将预先添加到数组的开头。

如何将 gekko 对象插入/附加到现有列表/数组?

如果值不存在,则从其他列插入 id 或 NULL

如果 mongodb 中不存在,如何修改现有数据或创建新数据?

如何检测数组中的相同元素并总结数量?

WordPress 和 SQL - 如果列值不存在,则从另一个表更新和插入