繁体   English   中英

PHP转义串联字符串

[英]PHP escaping concatenated string

我的任务看似很容易,但是我有点挣扎。 我知道我需要转义引号,但是我似乎无法正确组合。

$referringURL = $_SERVER['HTTP_REFERER'];
echo "<a href = ".$referringURL./MyAccount/SearchUser.aspx" class = "back">Return to Search Users page</a>";

值得不时混合报价

echo '<a href = "' . $referringURL . '/MyAccount/SearchUser.aspx" class = "back">Return to Search Users page</a>';

忘记转义,使用Heredoc

echo <<<HTML
<a href = "$referringURL/MyAccount/SearchUser.aspx" class = "back">
Return to Search Users page
</a>
HTML;

您的代码中的实际问题是缺少" ./MyAccount之前和3未转义"

玩得开心

$referringURL = $_SERVER['HTTP_REFERER'];
echo "<a href = '".$referringURL."/MyAccount/SearchUser.aspx' class='back'>Return to Search Users page</a>";

为了避免引用问题,可以使用sprintf分隔主字符串和要插入的字符串:要插入的每个字符串在主字符串中均用%s ,然后添加与%s一样多的字符串:

<?php
$referringURL = $_SERVER['HTTP_REFERER'];
$s = sprintf( "<a href = '%s' class = '%s'>Return to Search Users page</a>",
              $referringURL . "/MyAccount/SearchUser.aspx",
              "back" );
echo $s;
?>

连接多个字符串时,此方法不太容易混淆。

暂无
暂无

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

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