首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中替换第一个HTML <strong></strong>标记

如何在PHP中替换第一个HTML <strong></strong>标记
EN

Stack Overflow用户
提问于 2013-02-02 12:51:25
回答 5查看 5.7K关注 0票数 4

我有一个用PHP编写的文本字符串:

代码语言:javascript
复制
<strong> MOST </strong> of you may have a habit of wearing socks while sleeping. 
<strong> Wear socks while sleeping to prevent cracking feet</strong>
<strong> Socks helps to relieve sweaty feet</strong>

我们可以看到,第一个强标记是

代码语言:javascript
复制
<strong> MOST </strong>

我想删除第一个强标签,并将其内部的单词转换为ucword(第一个字母大写)。结果如下所示

代码语言:javascript
复制
Most of you may have a habit of wearing socks while sleeping. 
<strong> Wear socks while sleeping to prevent cracking feet</strong>
<strong> Socks helps to relieve sweaty feet</strong>

我已经尝试了爆炸功能,但它似乎不是我想要的。以下是我的代码

代码语言:javascript
复制
<?php
$text = "<strong>MOST</strong> of you may have a habit of wearing socks while sleeping. <strong> Wear socks while sleeping to prevent cracking feet</strong>. <strong> Socks helps to relieve sweaty feet</strong>";
$context = explode('</strong>',$text);
$context = ucwords(str_replace('<strong>','',strtolower($context[0]))).$context[1];
echo $context;
?>

我的代码只有结果

代码语言:javascript
复制
Most of you may have a habit of wearing socks while sleeping. <strong> Wear socks while sleeping to prevent cracking feet
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-02 12:56:28

您可以使用explode的可选限制参数来修复代码

代码语言:javascript
复制
$context = explode("</strong>",$text,2);

但是,更好的方法是:

代码语言:javascript
复制
$context = preg_replace_callback("(<strong>(.*?)</strong>)",function($a) {return ucfirst($a[1]);},$text);
票数 6
EN

Stack Overflow用户

发布于 2013-02-02 12:58:17

我知道您要求用PHP提供解决方案,但我不认为向您展示CSS解决方案会有什么坏处:

HTML

代码语言:javascript
复制
<p><strong>Most</strong> of you may have a habit of wearing socks while sleeping.</p>

CSS

代码语言:javascript
复制
p strong:first-child {
    font-weight: normal;
    text-transform: uppercase;
}

除非有特定的原因使用PHP,否则我认为它只会使本应简单的事情变得复杂。使用CSS可以减少服务器负载,并使样式保持在应有的位置。

更新: Here's a fiddle.

票数 3
EN

Stack Overflow用户

发布于 2013-02-02 12:57:26

这将是有意义的:

代码语言:javascript
复制
preg_replace("<strong>(.*?)</strong>", "$1", 1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14658732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档