2017-10-05 180 views
1

我想創建一個regex,它將刪除ul/ol li標籤之間的所有BR標籤。例如:PHP preg_replace - 刪除ul,li標籤之間的BR標籤

Test<br> 
<ul> 
<li> 
Test<br> 
</li> 
</ul> 

我要得到這樣的結果:

Test<br> 
<ul> 
<li> 
Test 
</li> 
</ul> 

我嘗試使用此代碼:

$param_array['description'] = preg_replace('/(?<=<ul>|<\/li>)([\s*<br>\s*|\s*<br\/>\s*|\s*<br \/>\s*]+)(?=<\/ul>|<li>)/is', "$1$3", $param_array['description']); 
    $param_array['description'] = preg_replace('/(?<=<ol>|<\/li>)([\s*<br>\s*|\s*<br\/>\s*|\s*<br \/>\s*]+)(?=<\/ol>|<li>)/is', "$1$3", $param_array['description']); 

,但它不工作。任何人都可以幫助我?

回答

0

使用str_replace()函數函數刪除的
:)

<?php 
    $html = "Test<br> 
    <ul> 
    <li> 
    Test<br> 
    </li> 
    </ul>"; 

    $without_breaks = str_replace(array('<br>', '&', '"'), ' ', $html); 

?> 
+0

你的代碼的任何情況下,將我所有的代碼刪除所有BR標籤。我想只有剝去之間的UL/OL標籤BR標籤,所以:'

  • HERE_I_WANT_REMOVE_BR_TAGS
但在這裏我要ALLOW BR標籤


' –

+0

」? $ HTML2 = 「

  • 測試
」; $ without_breaks = str_replace函數(陣列( '
', '&', '「 '),'',$ HTML2); $ finalhtml = $ HTML1 $ without_breaks; 回聲$ finalhtml; > – Andrew1996

+0

沒有評論...,, –