获取字符串的第一个字符,即法语口音

Etd*_*hou 8 css php

我有一个奇怪的问题,我不知道如何解决它.我想从数据库中获取Text字段的第一个字符.有了这个角色,我会应用CSS风格来实现它.

如果您尝试以下代码,您将了解我的问题:

<?php
$str_en = "I am a sentence.";
echo $str_en[0];

echo "<br /><br />";

$str_fr = "À tous les jours je fais du PHP.";
echo $str_fr[0];

echo "<br /><br />";

$str_fr = "Étais-tu ici?";
echo $str_fr[0];
?>
Run Code Online (Sandbox Code Playgroud)

上面的代码将输出:

一世

一个

一个

似乎法语字符在字符串中使用多个字节.问题是我的所有句子都不是以法国字符开头的.任何人都知道我怎么能有一个转换它的函数:

<?php
$str_fr = "Étais-tu ici?";
?>
Run Code Online (Sandbox Code Playgroud)

对此

$str_fr = "<span class='firstletter'>É</span>tais-tu ici?";
Run Code Online (Sandbox Code Playgroud)

或者也许CSS3有更好的方法来做到这一点.

bwo*_*ebi 15

参见mb_substr(http://www.php.net/manual/en/function.mb-substr.php)

$first_char = mb_substr($string, 0, 1, 'utf-8'); // You may change the forth parameter according to your needed encoding.
Run Code Online (Sandbox Code Playgroud)

mb_substr 重复编码并返回表示第一个字符的所有字节.


CSS3有一个伪类::first-letter,只选择第一个字母.

例:

你的HTML是:

<p id="french_text">Étais-tu ici?</p>
Run Code Online (Sandbox Code Playgroud)

然后你可以用CSS3解决它:

p:first-letter { /* Your properties */ }
Run Code Online (Sandbox Code Playgroud)

(Ps:现在的标准是使用::first-letter(双重双结肠而不是单个双结肠),但为了最好的向后兼容性,只使用一个双结肠)