从数组中剥离CIDR表示法

时间:2018-04-23 19:40:27

标签: php

如何从数组中的所有值中删除CIDR表示法 例如,我有一个以/ 32结尾的IP数组,我需要为数组中的每个值去掉它

到目前为止,这是我的代码:

$ip_addresses = "1.1.1.1/32, 2.2.2.2/32, 3.3.3.3/32";
$ip_addresses_stripped_array = explode(",", $ip_addresses);

2 个答案:

答案 0 :(得分:2)

由于/32是一个常量子字符串,您可以删除它并在,(逗号空间)上爆炸:

$ip_addresses = "1.1.1.1/32, 2.2.2.2/32, 3.3.3.3/32";
$ip_addresses_stripped_array = explode(", ", str_replace('/32', '', $ip_addresses));

print_r($ip_addresses_stripped_array);

将输出:

Array
(
    [0] => 1.1.1.1
    [1] => 2.2.2.2
    [2] => 3.3.3.3
)

答案 1 :(得分:2)

您可以通过一次操作拆分和删除。这将拆分逗号空间和/32并删除空白:

$result = preg_split('#, |/32#', $ip_addresses, null, PREG_SPLIT_NO_EMPTY);

收率:

Array
(
    [0] => 1.1.1.1
    [1] => 2.2.2.2
    [2] => 3.3.3.3
)