转义PHP字符串

时间:2012-02-07 13:22:02

标签: php string

我正在尝试在内容中添加一个php会话,如下所示,但它只是显示一个空页面。我确信逃脱不正确。

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

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

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

我想将会话添加到网址中,以便重定向到'somepage'。

7 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

您可能想了解variables are parsed inside PHP strings

的方式
// 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']);

答案 2 :(得分:0)

在双引号“智能”字符串中,你不能只在单个变量内部引用数组。

试试这个:

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

答案 3 :(得分:0)

试试这个

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

或使用

header("Location: http://www.example.com/" . $_SESSION['name']);

答案 4 :(得分:0)

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

应该可以正常工作。

答案 5 :(得分:0)

也许是这样的:

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

答案 6 :(得分:0)

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

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

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

相关问题