【问题标题】:Modify first and second occurrence and reset of a string [duplicate]修改字符串的第一次和第二次出现和重置[重复]
【发布时间】:2019-09-20 06:00:39
【问题描述】:

我有以下字符串

$data = '
<tr>
    <td>Section Head 1</td>
    <td>DATA DATA DATA DATA 1</td>
</tr>
<tr>
    <td>Section Head 2</td>
    <td>DATA DATA DATA DATA 2</td>
</tr>';

我想修改成这样:

<tr>
    <td width="25%;">Section Head 1</td>
    <td width="75%;">DATA DATA DATA DATA 1</td>
</tr>
<tr>
    <td width="25%;">Section Head 2</td>
    <td width="75%;">DATA DATA DATA DATA 2</td>
</tr>

我正在尝试使用preg_replace('td', '$1 width="25%"', $data);

但我被卡住了,我不知道如何在一个 preg_replace 中做到这一点

【问题讨论】:

  • 你用 PHP 生成这个字符串吗?
  • 是的,这是我数据库中的代码,我想替换 echo/print 上的代码
  • 你如何首先生成这个?在生成时更改它会更容易,或者使用 jQuery 或 DOM 解析器可能会更容易。或者使用 CSS。
  • 为什么?为什么不能使用样式表?
  • @mario - 数据不可更改。但如果您有建议,我可以更改表格样式

标签: php string replace preg-replace


【解决方案1】:

您可以使用 CSS 属性,并在该模式中查找偶数和奇数出现。

在这个例子中,我们有一个 ID 为myTable 的表,其中&lt;td&gt; 的所有偶数子元素的宽度为 25%,奇数子元素的宽度为 75%。

table#myTable tr td:nth-child(even) {
  width: 25%;
}
table#myTable tr td:nth-child(odd) {
  width: 75%;
}
<table id="myTable">
  <tr>
      <td>Section Head 1</td>
      <td>DATA DATA DATA DATA 1</td>
  </tr>
  <tr>
      <td>Section Head 2</td>
      <td>DATA DATA DATA DATA 2</td>
  </tr>
</table>

所以你会这样做

<table id="myTable">
    <?php echo $data; ?>
</table>

【讨论】:

  • 是的,我没想到,这会是一个更简单的解决方案
猜你喜欢
  • 2021-10-02
  • 2018-02-05
  • 2012-07-11
  • 1970-01-01
  • 2012-03-24
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多