2011-01-21 13 views

回答

9

我知道你有沒有在標籤中列出的CSS,但大部分時間將它留給客戶端更容易(如果您只希望將此字符串用於瀏覽器顯示)。

應用CSS text-transform: uppercase;將爲您做到這一點。

+0

謝謝!我應該想到這一點! – laukok 2011-01-21 12:57:04

+0

唯一的缺點是,它不會幫助你解決同樣的問題,在標題標籤 – 2014-03-10 09:42:43

3

那麼,刪除實體並使用多字節字符集!

$string = html_entity_decode($string, ENT_COMPAT, 'UTF-8'); 
$string = mb_convert_case($string, MB_CASE_UPPER, 'UTF-8'); 

然後輸出字符串。不需要大多數html實體,只需使用本地字符並正確設置文檔的輸出即可。

如果你真的必須使用實體,正則表達式是爲了:

$callback = function($match) { 
    return strtoupper($match[1]); 
} 
$regex = '/(\w+(?=&)|(?<=;)\w+)/'; 
$string = preg_replace_callback($regex, $callback, $string); 

請注意,我沒有測試過該正則表達式,但它應該工作,因爲它在尋找那些沒有緊跟字母一個;字符...

1

這是更好地轉換字符串第一個大寫比解碼比你會得到期望的結果

$var=<i>This</i><u>is</u><b>test</b><br>New line 

˚F結大寫strtoupper($var);輸出將是

<I>THIS</I><U>IS</U><B>TEST</B><BR>NEW LINE 

功能ヶ輛()$var=htmlEntities($var); OUTPUT:

&lt;I&gt;THIS&lt;/I&gt;&lt;U&gt;IS&lt;/U&gt;&lt;B&gt;TEST&lt;/B&gt;&lt;BR&gt;NEW LINE 

最終編碼$var=html_entity_decode($var); 輸出:

THIS IS TEST
NEW LINE

如果第一ヶ輛轉換比上殼體;解碼將失敗,因爲編碼測試已更改爲大寫且功能失敗;

1

我不能使用由卡帕的CSS變體,因爲我需要這個標題標籤。由ircmaxell提供的解決方案可能是正確的,但由於一些服務器沒有mbstring擴展名,此解決方案可能會更好:

echo htmlentities(strtoupper(html_entity_decode($str))); 
相關問題