在str_replace中使用PHP变量

时间:2019-08-03 09:38:39

标签: php str-replace

我有这个代码

$html = str_replace( '<a','<a class="name"', $html );

我需要在代码中添加这样的变量

$html = str_replace( '<a','<a class="$var"', $html );

但这不起作用。

编辑:是否可以使用sprintf做到这一点?

有关如何执行此操作的任何想法:

3 个答案:

答案 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 );