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

标签 php html forms uri parameter-passing

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

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

但是当 URI 只是像 wwww.mysite.com/index 这样的东西时它不起作用,因为还没有参数(所以在 main 之后没有 ?地址)。那么如何以通用的方式传递地址中的php参数呢?

最佳答案

您可以使用 parse_url 的组合, parse_str , 和 http_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)."'>";

关于php - 以通用方式将变量附加到 URI(必要时添加 ? 或 &),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954575/

相关文章:

php - 检查表是否存在

php - 使用sha256的密码问题

javascript - 有没有一个 jQuery 插件可以让我通过透明背景在图像顶部显示 "overlay"文本?

html - Unslider 显示奇怪的宽度

javascript - 表单验证(包括输入文件)的问题

php - Joomla 中的数据库迁移

使用 gpg 命令拒绝 Php shell_exec() 权限

php - div 展开和折叠在我的 PHP 代码中不起作用

javascript - 检测 HTML 表单提交

php - 如何将多个输入类型数字与相同的ID和名称相乘