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