PHP:通过数组存储字符串

PHP:通过数组存储字符串,php,Php,我有一个关于这种情况的问题,如何通过数组存储字符串? 这是我的密码 <?php $octets = array($_POST["oct1"],$_POST["oct2"],$_POST["oct3"],$_POST["oct4"]); $octlenfnl = count($octets) - 1; $binoctstr = 0 ; if($_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_PO

我有一个关于这种情况的问题,如何通过数组存储字符串? 这是我的密码

<?php
$octets = array($_POST["oct1"],$_POST["oct2"],$_POST["oct3"],$_POST["oct4"]);
$octlenfnl = count($octets) - 1;
$binoctstr = 0 ;
if($_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255)
{
    for($i=0;$i<=$octlenfnl;$i++){
        echo str_pad(decbin($octets[$i]), 8, '0', STR_PAD_LEFT) , "&nbsp";
    }
}
else
{
    echo "Invalid IP!";
}

?>

它将输入的IP输出到二进制八位字节,就像这样
11111111 0001000 10010101 10010101
,八位字节之间有空格,如何将它们拆分并存储到全局可访问的数组中


谢谢

您可以使用
$arr=explode(“”,“11111111 0001000 10010101 10010101”)

使用此

$resultAsArray = explode(" ", $binaryOctets);

不需要回显结果,而是将结果存储到类似这样的数组中

<?php
$octets = array($_POST["oct1"],$_POST["oct2"],$_POST["oct3"],$_POST["oct4"]);
$octlenfnl = count($octets) - 1;
$binoctstr = 0 ;
$binaryarray = array();
if($_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255)
{
  for($i=0;$i<=$octlenfnl;$i++){
      $binaryarray[] = str_pad(decbin($octets[$i]), 8, '0', STR_PAD_LEFT);
  }
}
    else
    {
        echo "Invalid IP!";
    }

//to echo out your results you can do this as a comma separated string
echo implode(",",$binaryarray);
//or if you wish to access a specific segment you can do this where $key is the array element you want
echo $binaryarray[$key];  

?>

更新简化代码的编辑

您可以将代码简化一点,我认为这样可以节省您创建第二个数组和操作现有数组的时间。除非您需要任何初始数组,否则这应该可以正常工作

<?php
$octets = array($_POST["oct1"],$_POST["oct2"],$_POST["oct3"],$_POST["oct4"]);
$binoctstr = 0 ;
if($_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255 && $_POST["oct1"] <= 255)
{
  for($i=0;$i<=count($octets);$i++){
      $octets [$i] = str_pad(decbin($octets[$i]), 8, '0', STR_PAD_LEFT);
  }
}
    else
    {
        echo "Invalid IP!";
    }

//to echo out your results you can do this as a comma separated string
echo implode(",",$octets );
//or if you wish to access a specific segment you can do this where $key is the array element you want
echo $octets[$key];  

?>


就这样
$arr=在“for”内分解(“”,str_pad(decbin($octets[$i]),8,'0',str_pad_LEFT);
或构建数组以开始,而不是以string@user1999909我已经用稍微简化的版本更新了代码示例