Несколько найти и заменить в php

У меня есть строка, как показано ниже

$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

Мне нужно сделать следующее

  1. Удалить "<" и ">"
  2. Удалить TBI
  3. Удалить поле "Недоступно"
  4. сохранять sn (т.е. 444970836741)
  5. сохранить сумму, но удалить запятую из суммы (900000.00)
  6. сохранить дату начала и дату окончания (как 31/12/13) 6.

Я пробовал с str_replace но действительно больно удалять все пробелы и ненужные символы. Это можно сделать на PHP?

2 ответа

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);

Используйте str_replace с условием массива. Смотрите описание "$search" для этой функции:

Искомое значение, иначе называемое иглой. Массив может быть использован для обозначения нескольких игл.

$str = str_replace(array('<', '>', 'TBI', 'Not Available', ','), '', $str);

И, чтобы удалить все двойные пробелы, используйте preg_replace

$str = preg_replace('/\s+/', ' ', $str);
Другие вопросы по тегам