2017-03-03 58 views
-1

我做了一個preg_replace刪除TAG'TagToremove'後,我仍然有一個線路回報,你知道我是否可以在preg_replace 或之後刪除它,以及如何? 感謝PHP刪除特定行返回

<?php 

$strip_list = array('TagToremove'); 
foreach ($strip_list as $tag) 
{ 
    $temp = preg_replace('/<\/?' . $tag . '(.|\s)*?>/', '', $temp); 
} 


?> 

字符串的preg_replace前:經過了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> 

字符串:

<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> 

回答

1

不要用正則表達式解析HTML,使用DOM解析器來代替。

不過,對於您的特定問題,你必須在你的正則表達式添加一個可選的換行符這樣的:

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

\R代表任何種類的換行符的(即\r\n\r\n

+0

謝謝,但行迴歸仍然在這裏... – Pipoo

+0

哎呀抱歉它的工作!它只是改變我的縮進添加左側的空間。 – Pipoo

+0

@Pipoo:沒問題,但對我而言,前面沒有空格。 – Toto