2015-02-18 1 views
2

Мне нужно преобразовать многие, многие известные строки MAC (всегда 12 символов) через PHP, чтобы зацикливать и искать в содержимом билетов, если они существуют в любом из трех форма.PHP: превратить известный MAC в другой формат (быстрый способ?)

Они приходят в этом формате из нашего db: A0B0C0D0E0F0 (всегда 12 символов).

Мне нужен код, чтобы превратить их в A0: B0: C0: D0: E0: F0, а затем A0-B0-C0-D0-E0-F0.

код будет делать что-то вроде

while ($row = mysqli_fetch_object($resultmac) { 

    if (strpos($ticket, $row->mac) !== false || strpos($ticket, //mac with ":"//) !== false || strpos($ticket, //mac with "-"//) !== false) { 
     echo "found match : "; 
    } 

} 

(я использую «! == ложь», потому что я прочитал here, что это был хороший способ сделать это)

Есть ли лучший способ затем преобразовать строка в массив и вручную добавить «:» или «-» после каждого набора двух символов?

+1

Так что теперь вопрос? Как получить 'A0B0C0D0E0F0' в' A0: B0: C0: D0: E0: F0' и 'A0-B0-C0-D0-E0-F0'? – Rizier123

+0

Вы можете использовать регулярные выражения для соответствия/замены символов в адресах mac. Если вас беспокоит производительность, вы должны создать небольшой ориентир, чтобы сравнить параметры. –

+0

lol жаль, что ты прав, я забыл четко рассказать о вопросе. Действительно, целью было преобразование адреса mac. – Quardah

ответ

2

Вы можете получить строку в массив быстро с:

$mac = 'A0B0C0D0E0F0'; 
$bytes = str_split($mac, 2); 

массив $ байт теперь каждый из шестигранных чисел. После этого вы можете:

$colons = implode(':', $bytes); // A0:B0:C0:D0:E0:F0 
$dashes = implode('-', $bytes); // A0-B0-C0-D0-E0-F0 
+0

Это великолепное произведение искусства. Это/делает именно то, что я ожидал. Большое спасибо за быстрый ответ и приятный день! – Quardah

2

Это должно работать для вас:

(Здесь я просто использовать wordwrap())

<?php 

    $str = "A0B0C0D0E0F0"; 

    echo wordwrap($str, 2, ":", TRUE); 
    echo wordwrap($str, 2, "-", TRUE); 

?> 

Выход:

A0:B0:C0:D0:E0:F0 
A0-B0-C0-D0-E0-F0 
+0

Эй, это тоже круто, я не знал о функции wordwrap. Я попробую спасибо за подсказку !! – Quardah

+0

@Quardah Добро пожаловать! Наслаждайтесь своим днем: D – Rizier123

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

  • Нет связанных вопросов^_^