PHP 字符串正在将空格更改为 + 符号.需要解码以保留空格
PHP string is changing spaces to + symbols. Need to decode to keep spaces
我有以下代码放置会话代码"3888",以便当用户在没有会话代码的情况下将他们重定向到URL。如果他们的 URL 中包含代码,页面将继续加载。
问题是代码在输出 javascript 变量时将我的 URL 空间更改为 + 号:例:这http://localhost/testing/testingvar.php?region=South AFrica&品牌=三星&型号=S 5更改为:http://localhost/testing/testingvar.php?region=South%20AFrica&brand=samsung&model=S%205&mine=3888
所以现在var
var region= getURLParameter('region');
打印为南非+非洲,而不是南非。
无论如何解码 URL 以保留空格?
这是PHP代码:
<?php
session_start();
$self = "{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";
if(!empty($_GET['mine']) && $_GET['mine'] == "3888" ) {
unset($_GET['mine']);
$qs = http_build_query($_GET);
$self = "{$_SERVER['PHP_SELF']}?{$qs}";
$_SESSION['mine'] = 1;
header("Location: $self");
exit;
} elseif (!isset($_SESSION['mine'])) {
header('Location: http://redirectedpage.com');
exit;
}
session_unset();
session_destroy();
session_write_close();
?>
我已经有这个作为javascript代码:
<script>
function getURLParameter(name){return decodeURI( (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] || '' );}</script>
这似乎不能解决它...我可以在PHP代码的某个地方使用urldecode()吗?没有PHP代码,我所有的变量都被完美地理解了。
你可以
使用 JS 的 replace()
函数:
var region = region.replace("+", "%20");
更多信息请访问 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace。
我找到了一个解决方案:
$self = str_replace("+", ", $self);
相关文章:
- 我如何找到一个句子中的所有空格并替换忽略它们
- Regex代码只允许一个空格
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 用空格替换单引号和其他符号
- PHP 字符串正在将空格更改为 + 符号.需要解码以保留空格
- 如何在用户写入文本和按空格后替换表情符号
- javascript encodeURIomponent 并将空格转换为 + 符号
- 字符、符号或数字之前或之后的空格;但是,不介于两者之间
- 字母数字、空格和符号的正则表达式,不像我需要的那样匹配
- 当用户输入时,符号后自动空格
- 引用生成器网站不能在显示的内容之间放置符号或空格
- XRegExp接受所有UTF-8字符,单词之间有空格,排除某个符号,并且没有尾随空格
- 在不包含@符号的每行中选择非空格
- 如何使用正则表达式拆分具有不同符号和空格的字符串
- regex匹配第一个字符之前和最后一个字符之后的空格或符号之间的字符串
- decodeURI将空格解码为+符号
- 用于数字、符号和空格的 Javascript 正则表达式
- 将符号替换为空格
- 在插入符号处插入文本-插入新行和制表符空格
- 删除剑道中百分比符号和数字之间的空格