PHP删除特定行返回

时间:2017-03-03 09:12:28

标签: tags preg-replace

在我完成preg_replace以删除TAG' TagToremove'后,我仍然有一个换行符,你知道我是否可以在preg_replace中删除它 或之后以及如何? 感谢

<CodeServiceTransport></CodeServiceTransport>
<PrixTotalCommande>100</PrixTotalCommande>
<TagToremove>
<Ligne>
<ll>hh</ll>
<Id>48</Id>
<SKU>autreID</SKU>
<Quantity>1</Quantity>
</Ligne>
</TagToremove>
<Meta-CodeActivite></Meta-CodeActivite>
<Meta-CodeEnseigne></Meta-CodeEnseigne>

Preg_replace之前的字符串:

<CodeServiceTransport></CodeServiceTransport>
<PrixTotalCommande>100</PrixTotalCommande>

<Ligne>
<ll>hh</ll>
<Id>48</Id>
<SKU>autreID</SKU>
<Quantity>1</Quantity>
</Ligne>

<Meta-CodeActivite></Meta-CodeActivite>
<Meta-CodeEnseigne></Meta-CodeEnseigne>

Preg_replace之后的字符串:

+---------+--------+--------------------+
| keyword | weight |   other keywords   |
+---------+--------+--------------------+
| dog     | 0.12   | [cat, horse, pig]  |
| cat     | 0.5    | [dog, pig, camel]  |
| horse   | 0.07   | [dog, camel, cat]  |
| dog     | 0.1    | [cat, horse]       |
| dog     | 0.2    | [cat, horse , pig] |
| horse   | 0.3    | [camel]            |
+---------+--------+--------------------+

1 个答案:

答案 0 :(得分:0)

不要使用正则表达式解析HTML,而是使用DOM解析器。

尽管如此,对于您的具体问题,您必须在正则表达式中添加一个可选的换行符:

$temp = preg_replace('~</?' . $tag . '[^>]*>\R?~i', '', $temp);

\R代表任何类型的换行符(即。\r\n\r\n