2014-02-24 40 views
0

條件更換
標籤我試圖寫一個PHP函數,將把考慮單個和多個<br>標籤作爲唯一的治療的情況下,一個字符串。我希望它採用任何有多個<br>標籤的情況。 (<br><br>,或<br><br><br><br><br><br><br>等),並與</p><p>一個片段取代,但仍允許<br>標籤的單個實例去改變。因此,作爲一個例子:
一種考慮多單標籤場景

//INPUT STRING: 
"<p>A yellow dog <br> An orange fox <br><br> A purple bird <br><br><br> A red rooster</p>" 
//OUTPUT STRING: 
"<p>A yellow dog <br> An orange fox </p><p> A purple bird </p><p> A red rooster</p>" 

得到任何幫助,謝謝。

回答

1

使用preg_replace()

$input_lines="<p>A yellow dog <br> An orange fox <br><br> A purple bird <br><br><br> A red rooster</p>"; 
preg_replace("/(<br>){2}/", "<\p><p>", $input_lines); 

DEMO

輸出

<p>A yellow dog <br> An orange fox <\p><p> A purple bird <\p><p><br> A red rooster</p> 
+0

謝謝,但它取代了
標籤還的單一實例。這是不希望的。我想要替換所有多實例,但保留
標記的任何單個實例。請參考我最初的例子。 – staticfiction

+0

我錯過逗號在我正則表達式(
{2,}) – Nambi

+0

輝煌。有沒有一種方法可以對此進行修改以解決帶有斜槓的br標籤,例如
,而不是僅僅
...? – staticfiction

0

這工作 -

$str = "<p>A yellow dog <br> An orange fox <br><br><br> A purple bird <br><br> A red rooster</p>"; 
$res = preg_replace("/(<br>){2,}/", "<p></p>", $str); 
print_r("<pre>".htmlentities($res)."</pre>"); 
//OUTPUT- <p>A yellow dog <br> An orange fox <p></p> A purple bird <p></p> A red rooster</p>