【问题标题】:How can I manipulate HTML tags in PHP? [closed]如何在 PHP 中操作 HTML 标签? [关闭]
【发布时间】:2013-08-16 13:34:17
【问题描述】:

我想操作下面这段代码:

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

输出应如下所示:

<ul>
  <li itemprop="ingredients">1</li>
  <li itemprop="ingredients">2</li>
  <li itemprop="ingredients">3</li>
  <li itemprop="ingredients">4</li>
</ul>

替换应该只发生在&lt;ul&gt; 标签之间。我怎样才能用 PHP 做到这一点?

【问题讨论】:

  • 这是您自己生成的页面吗?您正在从远程站点阅读并想要编辑的内容?
  • 懒惰的方式:简单替换。 困难的方式:使用正则表达式。 简单的方法:使用适当的 html 解析器。
  • 你是如何创建这个列表的? php/jQuery ?为什么不使用 php 代码或 JQuery attr()
  • 您应该编辑之前的问题,而不是提出新问题

标签: php html replace


【解决方案1】:

您可以使用字符串操作函数,例如str_replace

$output = str_replace("<li", "<li itemprop=\"ingredients\"", $output);

这会将&lt;li 替换为&lt;li itemprop="ingredients"

【讨论】:

  • 这将替换所有&lt;lis,即使是&lt;ol&gt; 下的那些。我们不知道整个代码。
  • 然后是正则表达式。类似#&lt;ul&gt;[ ]*&lt;li(.*)&gt;#... 真的不是我的事 :p 无论如何,这绝对是 Javascript 的工作。
  • @John WHS 这将替换页面上的所有
  • 。但我想替换
    1. 下的
  • (见我之前的回答)
  • @John WHS Smith 此代码有效: $( "ul > li" ).attr({ itemprob: "ingredients", });但这不起作用的谷歌机器人。 Google bot 看不到替换的版本。
  • 【解决方案2】:

    您应该阅读有关php str_replace function 的更多信息。

    解决办法是:

    $output = str_replace("<li>", "<li itemprop=\"ingredients\">", $output);
    

    【讨论】:

    • @Italy 谢谢。但是这段代码将替换页面上的所有
    • 但我想替换
      • 下的代码
    • @user2682277 : 这个 UL 有什么特别之处?如果它与此页面上的任何其他列表一样,您将不会专门在搜索和替换功能上找到它。无论如何,如果您是生成此页面的人,则将此列表写入临时 variable,将此变量输入到 str_replace 函数,然后将临时变量连接到 $output。
    • 我做了这个代码 $( "ul > li" ).attr({ itemprob: "ingredients", });
    • @user2682277 好的,这是一个很好的客户端代码。 PHP 是一种服务器端 编码语言,这就是您所要求的。
    • @user2682277 我需要服务器端编码,但我做不到。
    • 猜你喜欢
      相关资源
      最近更新 更多
      热门标签