2013-12-16 27 views

回答

29

與PHP輸出HTML一些提示:

  1. 使用單引號,這樣你就不必逃避雙引號(使用回聲時),
  2. 使用htmlspecialchars()正確地逃避你可能擁有的任何「無賴」價值。

示例使用echo

echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />'; 

或者printf()

printf('<input type="hidden" name="id" value="%s" />', 
    htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8') 
); 

或者在HTML模式:

?> 
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); " /> 
<?php 
+1

僅供參考,'htmlspecialchars'的默認值應該足夠用於雙引號'value'屬性,因此您可以放心地忽略第二個和第三個參數。 – Phil

+1

@Phil默認設置*應該*就足夠了,但是他們歷史上沒有:) –

+0

PHP最大的問題是它的*歷史* :) – Phil

1

使用htmlentities

echo "<input type=\"hidden\" name=\"id\" value=\"".htmlentities($row['id'])."\" />"; 
+0

這似乎並沒有回答OP。 (這裏的問題似乎是如何轉義html屬性值) –

+0

公平點 - 我最初誤解了這個問題。編輯。 –

-1

如何使用單引號,這樣你就不必逃避任何報價。 像這樣:

echo '<input type="hidden" name="id" value="'.$row['id'].'" />';