2017-08-08 162 views
0

目前我有這個代碼,用<br />來代替任何雙空間。如何用str_replace()替換所有出現的兩個子字符串?

它按預期工作:

​​

但是我想要做的另一個str_replace()在同一行上有豎線|更換任何單個空格。

我試着複製代碼,但是這只是爲我創建了另一個TD

任何幫助,將不勝感激。

+0

這個問題會,如果它得到改善提供了一些樣本輸入數據('$ result ['garment_type']')和期望的輸出字符串。請記住,未來,尋求教育的人將訪問這個頁面數千次。 – mickmackusa

回答

1

排列的順序的確很重要,否則你會得到<br|/>,而不是<br />這樣試試:

str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'])); 

事情是這樣的:

echo str_replace(array(' ','||'), array('|','<br /><br />'), 'crunchy bugs are so tasty man'); 

給您:

crunchy<br /><br />bugs|are|so<br /><br />|tasty|man 

基本上你是第一改變每個空間|那麼你改變任何具有兩個彼此(||)旁邊<br /><br />

如果你走另一條路,你會改變兩個空間,以<br /><br />,然後你正在改變單一的空格|和其間的<br />有一個空格,所以你最終<br|/>

編輯與您的代碼:

'<tr class="' . ($counter++ % 2 ? "odd" : "even") . '"> 
    <td>Garments:</td> 
    <td>' . str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'])) . '</td> 
</tr>' 
+0

這工作,除了它消失了這個 – Joe

+0

下所有的TR這是因爲我從來沒有包括這些部分。只需替換您的字符串替換我的字符串替換。保持你的其他東西。 – Rasclatt

+0

會是這樣的? \t​​'。 str_replace(array('','||'),array('|','

'),trim($ result ['garment_type'])); 。 ' – Joe

4

你可以通過數組str_replace函數

$what[0] = ' '; 
$what[1] = ' '; 

$with[0] = '<br /><br />'; 
$with[1] = '|'; 

str_replace($what, $with, trim($result['garment_type'])) 
+0

我將如何在我的代碼中使用它。一個例子會很好 – Joe

+0

Downvoted這個答案,因爲它是不正確的/不提供所需的輸出。 http://sandbox.onlinephpfunctions.com/code/6109975759520598646ebb4925af32147b02d9e3 – mickmackusa

1

要解決的問題與str_replace(在<br />空間正在與|取代)嘗試strtr

echo strtr(trim($result['garment_type']), array(' '=>'|', ' '=>'<br /><br />')); 
相關問題