我必须通过PHP转换很多已知的MAC字符串(总是12个字符),以便循环和查找票证内容(如果它们以三种形式中的任何一种存在)。
它们的格式来自我们的数据库: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 : ";
}
}
(我使用"!==false",因为我在这里读到这是一个很好的方法)
有没有更好的方法将字符串转换为数组,并在每组两个字符后手动添加":"或"-"?
您可以使用快速将字符串获取到数组中
$mac = 'A0B0C0D0E0F0';
$bytes = str_split($mac, 2);
数组$bytes现在具有每个十六进制数字。然后您可以:
$colons = implode(':', $bytes); // A0:B0:C0:D0:E0:F0
$dashes = implode('-', $bytes); // A0-B0-C0-D0-E0-F0
这应该适用于您:
(这里我只使用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