2013-12-17 58 views
0

在php中是否存在與html <sub>等價的內容?我已經找了幾天,似乎無法找到一個。 無論如何,我想得到類似於評論結果3的結果並將其包裝到一個變量中。結果1是完全失敗。結果2有效,但缺少我的<sub>。任何見解?需要讓Sub在PHP中工作

<?php 

$a = 'Na'; 
$B = 'CO3'; 
$B1 = 2; 

$result1 = $a ?> <sub> <? $B1 ?> </sub> <? $B ; 
$result2 = $a . $B1 . $B ; 

echo $result1; 
echo $result2; 

// result 3 
echo $a ?> <sub> <? echo $B1 ?> </sub> <? echo $B ; 
?> 
+0

這不是一個很好的做法,直接混淆了PHP與HTML。看@菲爾的回答 – azuax

+0

@azuax其實,我完全推薦在靜態HTML中混合使用PHP *回聲*。爲更易於閱讀的代碼做準備,特別是當與[控制結構的替代語法](http://php.net/alternative_syntax) – Phil

+0

@Phil一起使用時,但有一件事是做一個if或for以及其他的事情是要做類似問題的代碼。只是爲了記錄,我的意思是你的回答是正確的 – azuax

回答

4

嘗試sprintf

$result1 = sprintf('%s <sub> %s </sub> %s', 
    htmlspecialchars($a), 
    htmlspecialchars($B1), 
    htmlspecialchars($B)); 

如果你唯一的目的是要顯示一個HTML文檔中的這個數據,我會推薦這種方法,而不是

<?php 
$a = 'Na'; 
$B = 'CO3'; 
$B1 = 2; 
?> 

<p> <!-- or whatever container element you want to use --> 
    <?= htmlspecialchars($a) ?> 
    <sub> 
     <?= htmlspecialchars($B1) ?> 
    </sub> 
    <?= htmlspecialchars($B) ?> 
</p> 

但是,這主要是因爲我恨通過PHP生成HTML。

應該呈現爲

娜 CO3

+0

不錯,有待挖掘的新東西。 – Edwinner

+0

@Edwinner *新*? 'sprintf'和'htmlspecialchars'自從成立以來一直是PHP代碼庫的一部分(至少從第4版開始) – Phil

+0

@ Phil-我從來沒有用過它,但是幾個月前我又開始認真對待PHP。 – Edwinner

1

您的代碼顯得撲朔迷離。對我而言,它應該像我下面那樣格式化。請記住,<?php?>分界嚴格地將PHP與HTML分開。在PHP中,您可以毫無問題地回顯HTML。在這種情況下保持簡單&僅使用<?php?>來包裝代碼塊。

<?php 
$a = 'Na'; 
$B = 'CO3'; 
$B1 = 2; 

$result1 = $a . '<sub>' . $B1 . '</sub>' . $B; 
$result2 = $a . $B1 . $B ; 

echo $result1; 
echo $result2; 

// result 3 
echo $a . '<sub>' . $B1 . '</sub>' . $B; 
?> 

此外,您還可以使用sprintf,我喜歡用較大的字符串,但那是你自己的選擇:

$result1 = sprintf('%s<sub>%s</sub>%s', $a, $B1, $B); 
+1

很好的回答!上面的結果是我所要做的。 – Edwinner