我遇到mb_strtoupper
的问题。我需要用它来大写用PHP生成的新闻通讯中的文本(所以我不能只用CSS来大写它,而使用将大写的PHP函数卡住了)
事实是,mb_strtoupper
可以正常工作,但是引号'
字符有问题。诸如Bob's Burgers
之类的文本将被转换为BOB’S BURGERS
有没有办法使mb_strtoupper
不用引号?
答案 0 :(得分:1)
那是因为您的文字不是Activity B
而是Bob's Burgers
。换句话说,您没有纯文本,但是HTML和Bob’s Burgers
函数没有内置的HTML解析器。
这真的很棘手,因为HTML是一种成熟的语言。如果您不希望使用HTML标签(例如mb_…
),可以尝试执行以下操作:
Click <a href="//example.com">here</a>
$data = 'Bob’s Burgers'; // 1. Convert to plain text $data = mb_convert_encoding($data, 'UTF-8', 'HTML-ENTITIES'); // 2. Upper case $data = mb_strtoupper($data, 'UTF-8'); // 3. Encode back to 7-bit ASCII $data = mb_convert_encoding($data, 'HTML-ENTITIES', 'UTF-8'); var_dump($data);
步骤3应该不是真正必要的,但我猜您出于某些原因拥有HTML实体:-?
答案 1 :(得分:0)
像这样将编码设置为mb_strtoupper中的第二个参数...
mb_strtoupper("Bob's Burgers", 'UTF-8');