修改字符串的第一次和第二次出现以及重置

Modify first and second occurrence and reset of a string

我有以下字符串

$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', ' width="25%"', $data);

但是我被卡住了,我无法弄清楚如何在一个单一的过程中做到这一点 preg_replace

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

在这个例子中,我们有一个 ID 为 myTable 的 table,其中 <td> 的所有偶数子项获得 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>