2013-09-12 2 views
-2

У меня есть переменная 00 EF 5D 0E, и я бы хотел написать функцию, которая преобразует любую переменную такого типа следующим образом.Как преобразовать данные в php

1) Пространства удалены и заменены двоеточиями.

2) все буквы сводятся к нижнему регистру

3) если 0 является первым на пару, она должна быть удалена т.е.

00 EF 5D 0E becomes 0:ef:5d:e 
88 8E 07 TT becomes 88:8e:7:tt 

можно написать функцию PHP, которая может достичь этого или я должен извлечь его в файл, а затем использовать такой инструмент, как sed

+0

да это возможно, вы пытались что-нибудь? –

+2

Занимает 3 строки кода, попробуйте –

+0

Позвольте мне попробовать функцию, я использую Sed, поэтому я совершенно не знал в PHP, поскольку я новый пользователь – sosytee

ответ

1

На основании ввода и ожидаемого вывода вы можете сделать что-то вроде этого. Обратите внимание, что для динамических функций требуется 5.3+.

// split input by spaces 
$parts = explode(' ', $input); 

// remove leading zeros 
$parts = array_map(function($part) { 
    return preg_replace('/0/', '', $part, 1); 
}, $parts); 

// make lowercase and join parts with ":" 
$output = strtolower(implode(':', $parts)); 

echo $output; 

Sandbox Test

Смежные вопросы