错误=字符串.$variable - 失败


onerror=string . $variable - fails

为什么会失败?当onerror=不是变量而只是一个手动输入的字符串时,它起作用。

<?php 
$error = "onerror='this.src = ''http://userlogos.org/files/logos/pek/stackoverflow2.png''';";
for ($i = 1; $i <= 10; $i++) { 
  echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=" . $i . "' alt='ID " . $i . "' title='ID " . $i . "'" . $error . "/>"; 
} 
?>

试试这个:

<?php 
$error = " onerror='this.src ='"http://userlogos.org/files/logos/pek/stackoverflow2.png'";'";
for ($i = 1; $i <= 10; $i++) { 
  echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=" . $i . "' alt='ID " . $i . "' title='ID " . $i . "'" . $error . "/>"; 
} 
?>

引号太多。我会按如下方式重写它,然后您可以更轻松地发现错误:

<?php 
$error = "onerror='this.src = ''http://userlogos.org/files/logos/pek/stackoverflow2.png''';";
for ($i = 1; $i <= 10; $i++) { 
  echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=$i' alt='ID $i' title='ID $i' $error />"; 
} 
?>

不确定这是否正是您想要的,但调试起来更容易。