编程语言
首页 > 编程语言> > php-以通用方式将变量附加到URI(必要时添加?或&)

php-以通用方式将变量附加到URI(必要时添加?或&)

作者:互联网

我是PHP的初学者,目前在我使用的uri地址中发布变量:

echo "<form method='POST' action='".$_SERVER['REQUEST_URI']."&myvar=".$myvar."'>";

但是当URI类似于wwww.mysite.com/index时,它将不起作用,因为还没有参数(因此主地址后没有?).那么如何以一种通用的方式在地址中传递php参数呢?

解决方法:

您可以结合使用parse_urlparse_strhttp_build_query

// build URL with query
function q($url, array $params) {
    return parse_url($url, PHP_URL_PATH) . '?' . http_build_query($params);
}

// build URL and expand query
function qe($url, array $new_params, $overwrite = true) {
    parse_str(parse_url($url, PHP_URL_QUERY), $params);
    if ($overwrite) {
        $new_params = $new_params + $params;
    } else {
        $new_params = $params + $new_params;
    }
    return q($url, $new_params);
}

$url = qe($_SERVER['REQUEST_URI'], array('myvar' => $myvar));
echo "<form method='POST' action='".htmlspecialchars($url, ENT_QUOTES)."'>";

标签:forms,parameter-passing,uri,html,php
来源: https://codeday.me/bug/20191029/1963222.html