繁体   English   中英

转义PHP字符串

[英]Escaping PHP string

我正在尝试将php会话添加到内容中,如下所示,但它只是显示一个空白页面。 我确定转义是不正确的。

echo "<meta http-equiv=\"refresh\" content=\"0;URL=$_SESSION['name'];\">";

这就是我想要实现的目标。

$_SESSION['name'] = 'somepage.php'

我想将会话添加到URL,以便将其重定向到“ somepage”。

组合html引号和变量的最佳方法是按以下方式进行操作:

echo '<meta http-equiv="refresh" content="0;URL=' . $_SESSION['name'] . ';">';

您可能想学习如何在PHP字符串中解析变量

// do not use single quotes
echo "<meta http-equiv=\"refresh\" content=\"0;URL=$_SESSION[name]\">";

// curly brackets syntax works too but requires quotes; useful in cases when
// variable name is immediately followed by alpha-numeric/underscore character(s)
echo "<meta http-equiv=\"refresh\" content=\"0;URL={$_SESSION['name']}\">";

// curly brackets alternate syntax
echo "<meta http-equiv=\"refresh\" content=\"0;URL=${_SESSION['name']}\">";

就个人而言,我喜欢使用sprintf()

echo sprintf("<meta http-equiv=\"refresh\" content=\"0;URL=%s\">", $_SESSION['name']);

在双引号“智能”字符串中,不能仅在单个变量中包含引用数组。

尝试这个:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$_SESSION['name'].";\">";

尝试这个

echo '<meta http-equiv="refresh" content="0;URL=' . $_SESSION['name'] . ';">';

或使用

header("Location: http://www.example.com/" . $_SESSION['name']);
echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$_SESSION['name'].";\">";

应该工作正常。

也许是这样的:

echo "<meta http-equiv=\"refresh\" content=\"0;URL=" . $_SESSION['name'] . ";\">";

我不知道为什么没人提到(s)printf

printf('<meta http-equiv="refresh" content="0;URL=%s;">', $_SESSION['name']);

一旦需要在文本中输出许多变量,这将非常有用。 请参阅手册

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM