簡體   English   中英

在php子句中設置html標簽屬性的值

[英]Set the value of an html tag attribute within a php clause

長話短說...

這是我要設置屬性的html標記:

echo "<input type='text' name='name' value='".$phpvar."'>";

$ phpvar中可以包含任何文本和符號(包括引號和雙引號)

如何正確轉義/轉換字符串以使其正確顯示?

謝謝大家!

編輯謝謝大家對我的幫助! 好吧,如果其他人陷入困境,這解決了我的問題:

  1. 使用雙引號(“)括住屬性的值,因為HTML僅具有用於雙打(”)的實體代碼,並且它們不會像單打(')那樣出錯。
  2. 使用htmlentities()或htmlspecialchars()轉換/編碼字符串。

要將值發送到您的php文件,您需要對&"'等字符進行編碼,以及其他瀏覽器無法識別的符號。

為此,您可以使用urlencode()將這些符號轉換為它可以呈現的html符號實體。

這是它的外觀,

echo "<input type='text' name='name' value='".urlencode($phpvar)."'>";

這是一些有關stackoverflow的有用問題,它們將為您提供幫助。

為什么要使用urlencode?

AJAX + PHP自生成字段產生空白結果

祝你好運!

您可以使用strip_tags()urlencode()htmlspecialchars()

或更改您的echo語句,如果$ phpvar的值僅包含單引號,那么使用雙引號是一種更好的做法

echo '<input type="text" name="name" value="$phpvar">';

我不確定要從變量中刪除哪些特殊字符。 正如您提到的引號一樣,以下代碼將從字符串中刪除單引號和雙引號。

<?php    
$quotes = array('"', "'");

echo str_replace($quotes, "", "Hello Wor'l'd of PHP");

htmlentities是用於此類事情的。

$phpvar= '"&#test"';
echo '<input type="text" name="name" value="'.htmlentities($phpvar).'">';

將輸出

<input type='text' name='name' value='&quot;&amp;#test&quot;'>

文本字段將顯示"&#test"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM