2016-04-12 7 views
2

単語内の特定の文字を強調(太字)しようとしています。私は同じ文字と太字タグ<b></b>の文字を置き換えます。最初の文字を変更すると、小文字になります。私はこれを資本にしたい。しかし、その周りの大胆なタグのため、私はucfirst()を使うことはできません。私はそれが働くようになったが、これは簡単に行うことができますか?単語内の文字を強調表示して、大文字を維持する

から:テスト
へ:T ESあなたがこのpreg_replaceを使用して行うことができ

<?php 

$str = 'Testing'; 
$key = 'T'; 

$bold = str_ireplace($key , "<b>". $key ."</b>", $str); 
    $allLower = strtolower($bold); 

$arr = str_split($allLower); 

if($arr[0] == '<'){ 
    $arr[3]= ucfirst($arr[3]); 
}else{ 
    $arr[0]= ucfirst($arr[0]); 
} 

$string = null; 

foreach($arr as $value){ 
    $string .= $value; 
} 

echo $string; 

?> 
+0

あなたのユースケースで最初の文字が常に大文字であるかどうかは分かりませんが、それが可能であれば、css 't es t ' – st2erw2od

+0

' $ allLower = strtolower($ bold);の理由は何ですか? –

答えて

2

をINGのトン:大文字と小文字を区別するために/t/iスタンドの終わりに

preg_replace('/t/i', '<b>$0</b>', 'Testing'); 

iをマッチングを表し、$0は置換のマッチしたパターンを表します。

これが役に立ちます。

+0

当然の逆参照は非常に大きい – PHPhil

関連する問題