使用PHP regex将CSS类添加到HTML标记

时间:2014-10-08 13:29:26

标签: php html regex wordpress

有人能建议使用PHP将CSS类添加到HTML元素的最佳方法吗?

我需要修改一个WordPress帖子内容的字符串。如果帖子在开头有一个数字元素,我想提取元素的开放<figure>标签并添加CSS类&#34;大图像&#34;把它放回原处之前。标签可能有也可能没有class属性(带有单引号或双引号的值),并且它可能有各种顺序的其他属性,所以我不能只使用preg_replace:我需要拉标签输出并通过某些逻辑运行它以满足这些可能性。

例如,我可以:

<figure id="foo" data-track="bar" class="fig">

<figure class='fig bah' id='foo' data-track='bar'>

<figure data-track="bar">

或只是

<figure>

如果数字是内容中的第一件事,我只需要这样做 - 如果在其他任何地方都有一个数字我会忽略它。我已经达到了第一个条件

if ( strpos( trim( $content ), '<figure' ) == 0 ) {

}

但我对如何进一步采取行动感到有些困惑。在我看来,我需要一个PHP函数,它使用正则表达式来查找第一个<figure>并在其开始标记的末尾拆分$ content字符串,返回两半。但似乎并没有这样的函数 - preg_split返回在模式中划分的字符串,而不是模式本身。我很感激任何建议!

编辑= = = = = = = = =

在回答Amit的问题时,这里是所需输入/输出的一个例子

<figure><figure class="big-image">

<figure class='boo'><figure class='big-image boo'>

<figure id="bar" class="boo"><figure id="bar" class="big-image boo">

1 个答案:

答案 0 :(得分:0)

我现在不在系统上,所以不能编写代码,只需遵循一个简单的程序。

  1. 使用“the_content”或任何您喜欢的内容在变量中获取帖子内容。
  2. 检查内容中是否有"<figure"
  3. 通过char读取从"<figure"开始到第一个">" char的字符串,并将它们保存在其他变量中,例如$ remove_it。
  4. 现在使用$ remove_it preg替换帖子内容。
  5. 结果变量将返回所需的结果。
  6. 如果您有任何其他疑问,请直接在我的新博客http://www.sourabhmodi.in/上与我联系。我很乐意帮助你。