我有一个类似下面的字符串
$str="<444970836741>BOA LTD.
CR
9,00,000.00 Not Available Not Available Not Available Not Available TBI 31/12/13 31/12/13";
我需要输出如下
444970836741,900000.00,31/12/13,31/12/13
我需要做以下
sn
(即444970836741)我尝试使用str_replace
,但删除所有空格和不必要的字符真的很痛苦。可以用PHP完成吗?
答案 0 :(得分:1)
strcspn
,preg_replace
和str_replace
可以帮助您
$str = "<444970836741>BOA LTD.
CR
9,00,000.00 Not Available Not Available Not Available Not Available TBI 31/12/13 31/12/13";
function complicated($string)
{
// Change into array
$array = explode(" ", $string);
// Unset element has no numbers
foreach ($array as $key => $value)
{
if(strcspn($value, '0123456789') == strlen($value)){
unset($array[$key]);
}
}
// Return all the values of an array
$array = array_values($array);
// Remove everything from a string but just numbers
$array[0] = preg_replace("/[^0-9]/","",$array[0]);
// Remove commas
$array[1] = str_replace(',', '', $array[1]);
// Return
return implode(',', $array);
}
echo complicated($str);
答案 1 :(得分:0)
对数组条件使用str_replace。请参阅此函数的“$ search”说明:
正在搜索的值,也称为针。阵列可用于指定多个针。
$str = str_replace(array('<', '>', 'TBI', 'Not Available', ','), '', $str);
并且,要删除所有双空格,请使用preg_replace
$str = preg_replace('/\s+/', ' ', $str);