【发布时间】:2019-02-18 12:21:21
【问题描述】:
我试图在给定文档的每个段落的第一句之后插入一个 HTML 标记。
我想出的代码(我不是程序员)正在运行。
$insert_pos 是最后插入标签的位置。之所以需要它,是因为大多数文档中都有不止一个段落。
现在我还需要检查“?” (也可能是“!”)。
$insert_pos = strpos($content, ".", $insert_pos) + 1;
$content= substr_replace( $content, "</tag>", $insert_pos,0 );
一些上下文:
每个 CMS 都会使用</br><br /> 生成一个段落。因此,文档将具有以下格式:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </br><br />Lorem ipsum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </br><br />voluptua.
我需要<br /> 和. 或! 或? 之间的每个句子成为<h3> 标记内的文本。所以格式为<h3>Lorem ipsum.</h3>
【问题讨论】:
-
strpos 不能在一次调用中做到这一点 - 所以你需要一个你正在寻找的每个可能的字符。将字符放在一个数组中可能是有意义的,这样你就可以遍历它。不清楚您是否只需要在找到任何这些字符的每个位置执行某些操作,或者只需要在找到任何这些字符的第一个位置执行操作。对于后者,您可能希望先收集所有位置,然后找出最小值。
-
也许你可以使用
strpbrk然后strpos -
也许这里给出的答案可以帮助你:stackoverflow.com/questions/1252693/…
-
>>您可能想先收集所有位置,然后找出最小值。php.net@04FS上的文档中蒸发
标签: php replace strpos punctuation html-heading