我有这个代码
$html = str_replace( '<a','<a class="name"', $html );
我需要在代码中添加一个这样的变量
$html = str_replace( '<a','<a class="$var"', $html );
但这行不通。
编辑:是否可以使用 sprintf 来做到这一点?
关于如何做到这一点的任何想法:
方法有很多。这里有两个:
$html = str_replace('<a', '<a class="' . $var . '"', $html);
和
$html = str_replace("<a", "<a class=\"$var\"", $html);
"
前面的反斜杠称为“转义符”。这意味着 "
将保持原样,并且不会被解释为字符串常量的结尾。
当您使用单引号时,变量不会被填充。仅当您有双引号时才会存在此行为。例如,这会起作用:
$html = str_replace( '<a','<a class="' . $var . '"', $html );
这里
.
用于“连接”字符串,换句话说,将它们粘合在一起。
您还可以使用不同的方法,将类名单引号引起来:
$html = str_replace( '<a',"<a class='$var'", $html );
如前所述,这些是双引号。这意味着现在可以用引号对变量进行转义。
它们中的任何一个都会起作用,这就是你真正想要的。
您可以将要替换的字符串放在双引号中,并使用不带引号的
$var
:
$html = str_replace( '<a',"<a class=$var", $html );