我需要轉換如何在PHP中執行此類字符串操作?
"01,02,03,04,05,07:01"
到:
<b>07</b><b>09</b><b>30</b><b class="color_blue_ball">11</b>
也就是說,包裹那些:
與<b></b>
之前,但那些:
與<b class="color_blue_ball"></b>
。如果沒有:
後,都應該與<b></b>
包裹
任何人都知道如何做到這一點?
我需要轉換如何在PHP中執行此類字符串操作?
"01,02,03,04,05,07:01"
到:
<b>07</b><b>09</b><b>30</b><b class="color_blue_ball">11</b>
也就是說,包裹那些:
與<b></b>
之前,但那些:
與<b class="color_blue_ball"></b>
。如果沒有:
後,都應該與<b></b>
包裹
任何人都知道如何做到這一點?
一點點更詳細:
<?php
function wrapValues($array, $wrapper) {
$result = array();
foreach ($array as $elem) {
$result []= str_replace('?', $elem, $wrapper);
}
return implode('', $result);
}
$values = "01,02,03,04,05,07:01,02";
$firstWrapper = '<b>?</b>';
$secondWrapper = '<b class="color_blue_ball">?</b>';
list($first, $second) = explode(':', $values);
echo wrapValues(explode(',', $first), $firstWrapper) .
wrapValues(explode(',', $second), $secondWrapper);
無需正則表達式:
echo '<b>' . str_replace(array(',', ':'), array('</b><b>', '</b><b class="color_blue_ball">'), "01,02,03,04,05,07:01") . '</b>';
編輯:如果 「01,02,03,04,05,07:01,04,06」 是有效的,那麼這個想法相同的,但explode
增加:
$parts = explode(':', "01,02,03,04,05,07,01,04:06");
echo '<b>' . str_replace(',', '</b><b>', $parts[0]) . (isset($parts[1]) ? str_replace(',', '</b><b class="color_blue_ball">', ',' . $parts[1]) : '') . '</b>';
聰明,但如果我正確解釋提問者問題,也可能出現這種情況:'01,02,03,04,05,07:01,04,06' – 2011-03-08 09:56:02
我認爲',','。 $ parts [1]):'應該是:',$ parts [1]):'。除此之外:很好的答案。 +1 – 2011-03-08 12:37:36
我不知道這是否是做到這一點的最好辦法,但我可能會分裂的:
的字符串,然後在,
,然後每部分分別處理,並加入他們的行列重新走到一起。
你有沒有試過* *做到這一點?如果是這樣,怎麼樣? – Jon 2011-03-08 09:39:41
那麼,這也是一個有效的情景:'01,02,03,04,05,07:01,04,06'? – 2011-03-08 09:57:48
輸入和輸出數字之間的映射怎麼樣? – 2011-03-08 10:07:20