我怎樣才能使一個字符串爲大寫,但不是在它的HTML實體的內容?可能嗎?PHP:做一個串上的情況下,但不是在它的HTML實體?
$str = 'FUNDA MENTALISM';
echo strtoupper($str);
我想生產這種,
'FUNDA MENTALISM'
,但我得到這個與strtoupper()
'FUNDA MENTALISM'
我怎樣才能使一個字符串爲大寫,但不是在它的HTML實體的內容?可能嗎?PHP:做一個串上的情況下,但不是在它的HTML實體?
$str = 'FUNDA MENTALISM';
echo strtoupper($str);
我想生產這種,
'FUNDA MENTALISM'
,但我得到這個與strtoupper()
'FUNDA MENTALISM'
我知道你有沒有在標籤中列出的CSS,但大部分時間將它留給客戶端更容易(如果您只希望將此字符串用於瀏覽器顯示)。
應用CSS text-transform: uppercase;
將爲您做到這一點。
那麼,刪除實體並使用多字節字符集!
$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);
請注意,我沒有測試過該正則表達式,但它應該工作,因爲它在尋找那些沒有緊跟字母一個;
字符...
這是更好地轉換字符串第一個大寫比解碼比你會得到期望的結果
$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:
<I>THIS</I><U>IS</U><B>TEST</B><BR>NEW LINE
最終編碼$var=html_entity_decode($var);
輸出:
THIS IS TEST
NEW LINE
如果第一ヶ輛轉換比上殼體;解碼將失敗,因爲編碼測試已更改爲大寫且功能失敗;
我不能使用由卡帕的CSS變體,因爲我需要這個標題標籤。由ircmaxell提供的解決方案可能是正確的,但由於一些服務器沒有mbstring
擴展名,此解決方案可能會更好:
echo htmlentities(strtoupper(html_entity_decode($str)));
謝謝!我應該想到這一點! – laukok 2011-01-21 12:57:04
唯一的缺點是,它不會幫助你解決同樣的問題,在標題標籤 – 2014-03-10 09:42:43