我的HTML内容类型为:
<em>this is some</em> dummy text
我想将其格式化为:(首字母大写,保持HTML标记完好无损)
<em>This is some</em> dummy text
使用PHP。我不想使用
:div:first-letter {
text-transform: uppercase;
}
如果我尝试使用strip_tags
然后使用ucfirst
,则无法跟踪<em>
代码。
答案 0 :(得分:1)
function capsfirst_sentence($string) {return empty($string) ? '' : preg_replace('/\b(\w)/e', 'strtoupper("$1")', $string);}
这是在PHP如果帮助你
答案 1 :(得分:0)
:: first-letter选择器用于将样式添加到指定选择器的第一个字母。
注意:以下属性可以与:: first-letter:
一起使用text-transform
我认为没有text-transform
你就不能这样做.....
所以尝试使用此代码
em {
text-transform:initial;
}
答案 2 :(得分:0)
我敢打赌,有更好的方法来实现这一目标。但我认为这个片段可能会有所帮助。它遍历字符串并忽略前缀标签。
<?php
$str = "<foo>string</foo> to loop through";
$strlen = strlen($str);
$inTag = false;
for( $i = 0; $i < $strlen; $i++ ) {
$char = substr( $str, $i, 1 );
if ($inTag) {
if (strcmp($char, ">") == 0) {
$inTag = false;
}
continue;
}
if (strcmp($char, "<") == 0) {
$inTag = true;
continue;
}
substr_replace($str, strtoupper($char), $i, 1);
break;
}
echo($str);
?>
答案 3 :(得分:0)
$mystring1 = "<em>this is some</em> dummy text";
$pos1 = stripos($mystring1, '>');
$rest = substr($mystring1, $pos1+1, 1);
$new = ucfirst($rest);
echo substr_replace($mystring1, $new, $pos1+1, 1);