为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 用 HTML 注释字符串

如何使用 PHP 用 HTML 注释字符串

PHP
猛跑小猪 2021-07-09 15:11:06
我正在尝试在字符串内的单词之间添加 HTML 标签(用 html 标签包装单词,即 HTML 注释)。HTML 标记应该写入的位置由偏移数组分隔,例如://array(Start offset, End offset) in characters//Note that annotation starts in the Start offset number and ends before the End offset number$annotationCharactersPositions= array(   0=>array(0,3),   1=>array(2,6),   2=>array(8,10));因此,要使用以下 HTML 标记 ($tag) 注释以下 HTML 文本 ($source)。这是包装由 $annotationPositions 数组分隔的字符(不考虑源的 HTML 标记)。$source="<div>This is</div> only a test for stackoverflow";$tag="<span class='annotation n-$cont'>";结果应如下(https://jsfiddle.net/cotg2pn1/):charPos   =--------------------------------- 01---------------------------- 2-------------------------------------------3------------------------------------------45-------67-----------------------------89-------10,11,12,13......$output = "<div><span class='annotation n-1'>Th<span class='annotation n-2'>i</span></span><span class='annotation n-2'>s</span><span class='annotation n-2'> i</span>s</div> <span class='annotation n-3'>on</span>ly a test for stackoverflow"如何编写下一个函数:    $cont=0;    $myAnnotationClass="placesOfTheWorld";    for ($annotationCharactersPositions as $position) {         $tag="<span class='annotation $myAnnotationClass'>";                      $source=addHTMLtoString($source,$tag,$position);         $cont++;    }考虑到在计算 $annotationCharactersPositions 数组中描述的字符时不得考虑输入字符串的 HTML 标签,并且必须考虑在 $source 文本中插入注释(即$tag)的每个以下注释的封装/注释。整个过程的想法是,给定输入文本(可能包含也可能不包含 HTML 标签),将注释一组字符(属于一个或多个单词),以便结果将具有选定的字符(通过数组它定义了每个注释的开始和结束位置)由 HTML 标记包装,该标记可以通过可变数量的 html 属性(名称、类、id、数据-*)变化(a、span、mark)。此外,结果必须是格式良好的有效 HTML文档,以便如果在多个注释之间有任何注释,则 html 应相应地写入输出。你知道任何图书馆或解决方案来做到这一点吗?也许 PHP DOMDocument 功能可能有用?¿但是如何将偏移量应用于 php DomDocument 函数?任何想法或帮助都受到欢迎。注 1:输入文本是 UTF-8 原始文本,嵌入了任何类型的 HTML 实体 (0-n)。注 2:输入标签可以是任何具有可变数量属性 (0-n) 的 HTML 标签。注 3:初始位置必须是包含的,最终位置必须是不包含的。即 1º 注释在第 2 个字符(包括第 2 个字符 'i')之前开始并在第 6 个字符之前结束(不包括 6 个字符 's')
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信