Php span之后关闭的任何标记都不允许span执行';这是必需的工作

Php span之后关闭的任何标记都不允许span执行';这是必需的工作,php,html,Php,Html,每当我有一个span标记将我的文本涂成绿色,并且span后有一个标记关闭,如: </strong> or </i> or </b>, 或, span标记不会将文本染成绿色。示例代码为: Newly written <span style="color: green;"> <br /> <br /></span> <strong> ab <span style="color:

每当我有一个span标记将我的文本涂成绿色,并且span后有一个标记关闭,如:

  </strong> or </i> or </b>,
或,
span标记不会将文本染成绿色。示例代码为:

  Newly written  <span style="color: green;"> <br /> <br /></span> <strong> 
  ab <span style="color: green;"> </strong> 
  <ol> <li> Marium </li> <li> <strong> Malik </strong> </li> <li> <strong>     
  This is new as well </strong> </strong> </li> </ol></span>  
新编写的

ab
  • 马里姆
  • 马利克
  • 这也是新的
  • 这段代码是由一个函数自动生成的,该函数会查找所有新添加的字符串并将它们涂成绿色,因此我无法更改HTML。有什么解决办法吗??
    我已经知道span之后标记关闭的问题,并且我已经提到我不能更改我的HTML,我只是想知道是否有任何解决方案

    Php可以做一些类似的事情吗?只要span标记后有任何标记关闭,它就应该切换它们的位置。

    如果这里有文本,而不是空格,那么它就是新编写的

    Newly written  <span style="color: green;"> IF ONLY YOU HAD TEXT HERE AND NOT EMPTY SPACES<br /> <br /></span> <strong> 
      ab <span style="color: green;"> EMPTY SPACES HERE, SO, NO COLOR</strong> 
      <ol> <li> Marium </li> <li> <strong> Malik </strong> </li> <li> <strong>     
      This is new as well </strong> </strong> </li> </ol></span> 
    
    ab此处为空白,因此没有颜色
  • 马里姆
  • 马利克
  • 这也是新的

  • 我不知道生成此跨距的算法是如何工作的,但我看到的是

    和被样式跨距包围的空白空间,正如Julio提到的,您需要
    内的
    标记。此更改使其按您的期望工作:

         Newly written  <span style="color: green;"> IF ONLY YOU HAD TEXT HERE AND NOT EMPTY SPACES<br /> <br /></span>  
      ab <span style="color: green;"> <strong>EMPTY SPACES HERE, SO, NO COLOR</strong> 
      <ol> <li> Marium </li> <li> <strong> Malik </strong> </li> <li> <strong>     
      This is new as well </strong> </strong> </li> </ol></span> 
    
    如果这里有文本,而不是空白,则是新编写的

    ab此处空白,因此,没有颜色
  • 马里姆
  • 马利克
  • 这也是新的

  • 简单地说,在关闭前一个标记之前,您无法打开新标记

    取而代之的是(当然,在第一部分中会有一个不会显示任何内容的空白):



    ab
  • 马里姆
  • 马利克
  • 这也是新的
  • 试试这个:

    <span style="color: green;">Hello Marium<br /></span>
    <strong> 
    <span style="color: blue;">ab</span>
    </strong> 
    <ol>
      <li> Marium </li> 
      <li> 
      <strong> Malik </strong> 
      </li> 
      <li> 
      <strong> This is new as well </strong>
      </li>
    </ol> 
    
    Hello Marium
    ab
  • 马里姆
  • Malik
  • 这也是新的
  • 输出:

    你好,Marium(正常,绿色)

    ab(正常,蓝色)

    Marium(默认黑色的正常颜色)

    Malik(带默认黑色的strong)

    这也是新的(带有默认黑色的strong)

    编辑:2

    单词“ab”也需要加粗,如果强标记在范围内,单词“ab”如何加粗

    在这种情况下,将ab包裹起来就可以了,因为它需要自己的标签

    <span style="color: green;">Hello Marium<br /></span>
        <strong> 
        <span style="color: blue;">
        <strong>ab</strong>
        </span>
        </strong> 
        <ol>
          <li> Marium </li> 
          <li> 
          <strong> Malik </strong> 
          </li> 
          <li> 
          <strong> This is new as well </strong>
          </li>
        </ol> 
    
    Hello Marium
    ab
  • 马里姆
  • Malik
  • 这也是新的
  • 注意:如果打算用一种颜色将它们全部上色,则 不必一次又一次地放置这么多的
    标签,但一个标签就可以了:

    例如:

    <span style="color: green;">Hello Marium<br />  <strong> 
        <strong>ab</strong>
        </strong> 
        <ol>
          <li> Marium </li> 
          <li> 
          <strong> Malik </strong> 
          </li> 
          <li> 
          <strong> This is new as well </strong>
          </li>
        </ol> 
    </span>
    
    Hello Marium
    ab
  • 马里姆
  • Malik
  • 这也是新的

  • 我解决了你的问题。我同意胡里奥的观点。问题在于格式化。你可以看看这里:

    Newly written  <span style="color: green;"> <br /> <br /></span> <strong> 
    ab <span style="color: green;">  </strong> 
    <ol> <li> <strong> <span style="color: green;"> Malik </strong> </li> <li> <strong><span style="color: green;"> Malik </strong> </li> <li> <strong>     
    <span style="color: green;">This is new as well </strong> </strong> </li></ol></span>
    
    新编写的

    ab
  • 马利克
  • 马利克
  • 这也是新的

  • 您需要正确地嵌套标签,您不能像您那样
    。。。您必须
    ,因为我没有这样做,我的php代码正在发现差异并自己做。没有这样的事情。。。你的php代码自己在做它意味着你在做它。。。如果没有,则在您使用的函数中。修复函数以修复结果。html不能像我们希望的那样工作。它按照这里指定的方式工作,所有这些标记都是新添加的,所以它将它们视为新添加的字符串,所以它们位于范围内。这就是我真正想要的,而且它正以我想要的方式工作。但是这些HTML标记是混乱的,正如Julio所说,解决方案是更改HTML。不要因为你不喜欢HTML的规则而提出一个要求解决方案的问题,然后拒绝这个解决方案。听,想,做。但是,从逻辑上讲,它应该给Marium,Malik涂上颜色,这也是新的,因为span标记紧跟在他们后面。单词“ab”也需要加粗,如果强标记在span内,“ab”一词会怎么写加粗?它需要自己的
    标记,除非您将所有
    标记都放在
    标记内。但是,听起来好像所有内容都在span标记中,所以只需将每个元素包装在
    标记中。我已经知道span后标记关闭的问题,并且我已经提到我无法更改HTML,我只想知道是否有任何解决方案。我无法更改我的HTML–编写另一个函数,获取原始函数的输出并对其进行重新格式化,但这真的是一个难题。PHP没有本地函数,您必须编写它,但是如果可能的话,最好修改原始函数。是的,它会变得更混乱。但我认为这是现在唯一的选择。
    
    Newly written  <span style="color: green;"> <br /> <br /></span> <strong> 
    ab <span style="color: green;">  </strong> 
    <ol> <li> <strong> <span style="color: green;"> Malik </strong> </li> <li> <strong><span style="color: green;"> Malik </strong> </li> <li> <strong>     
    <span style="color: green;">This is new as well </strong> </strong> </li></ol></span>