2010-08-24 107 views
1
$URN = 1 
$col2 = ABC 
$qty = 10 

上述3個值需要被放在span標籤如<span id ='$URN:$col2'>$qty</span>我怎麼用雙引號內的單引號PHP變量來解釋

$row['col1'] = "<span id = '".$urn."'>".$qty."</span>"; 

但我得到一個錯誤。

+2

什麼錯誤,你如何分配$數量 – 2010-08-24 18:46:38

+0

後埃羅r代碼作爲您粘貼的文本不是錯誤的。 – Chris 2010-08-24 18:47:09

回答

2

你有幾個選擇。

a。字符串與單引號連接

$row['col1'] = '<span id="' . $urn . '">' . $qty . '</span> 

b。雙引號和轉義:

$row['col1'] = "<span id=\"{$urn}\">{$qty}</span>"; 

c。 HEREDOC

$row['col1'] = <<<EOL 
<span id="{$urn}">{$qty}</span> 
EOL; 
+0

@someone這個沒有回答你的問題 – Chris 2010-08-24 23:22:25

1

我看不到任何語法錯誤,但下面將是一個很大更具可讀性:

$row['col1'] = "<span id='$urn'>$qty</span>"; 

如果你是更具體的瞭解你所得到的神祕的錯誤它可能的幫助。

+1

他發佈的帖子看起來正確嗎? – Chris 2010-08-24 18:46:15

3

使用單引號:

$row['col1'] = "<span id = '".$URN.":".$col2."'>".$qty."</span>"; 

使用雙引號:

$row['col1'] = "<span id = \"".$URN.":".$col2."\">".$qty."</span>"; 
1

爲了讓你問exacly你需要什麼:

$row['col1'] = "<span id = '".$urn.":".$col2."'>".$qty."</span>"; 
1

我不想在生成HTML時使用sprintf函數來考慮這個問題。

+1

這是一個很好的建議,你應該詳細說明一下。 :-) – Chris 2010-08-24 19:16:09

+0

啊。 http://www.php.net/manual/en/function.sprintf.php – joebert 2010-08-24 20:47:51

1

請逃不出你的輸出(否則你只是打開車門可能的XSS攻擊:

(假設我們使用UTF-8字符集):

$row['col1'] = '<span id="'. 
        htmlspecialchars($urn, ENT_COMPAT, 'UTF-8'). 
       '">'. 
        htmlspecialchars($qty, ENT_COMPAT, 'UTF-8'). 
       '</span>'; 
2

變量名稱是區分在PHP敏感。
如果您收到「未定義變量」錯誤 - ?好吧,這是它

$row['col1'] = "<span id = '$URN:$col2'>$qty</span>";