PHP:组合字符串有问题


PHP: Trouble composing strings

我使用这个php代码

echo " onclick='myFunction(" . $row['username'] . ")'"

给出了这个结果

onclick="myFunction(Francis88)"

但是我想要这个:

onclick="myFunction('Francis88')"

我应该如何改变我的php代码来获得这个?

使用'转义字符串中的字符,例如:

echo " onclick='"myFunction('" . $row['username'] . "')'""

我将使用json_encode(),以确保它不会与O'Reilly等名称混淆;然后,应用htmlspecialchars()以确保结果字符串不会在HTML属性中引起问题:

printf(' onclick="myFunction(%s)"', 
    htmlspecialchars(json_encode($row['username']), ENT_QUOTES, 'UTF-8')
);

我在这里也使用单引号,这样HTML属性值就可以用双引号括起来;有争议,但我讨厌单引号属性;-)

请参阅我之前的回答,了解使用内联JavaScript的缺点。