1

この状況について質問があります。配列を介して文字列を格納するにはどうすればよいですか?これは私のコードです

<?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間にスペースがあります。それらを分割して、グローバルにアクセス可能な配列に格納するにはどうすればよいですか?

ありがとう

4

3 に答える 3

1

あなたが使用することができます$arr=explode(' ', "11111111 0001000 10010101 10010101");

于 2013-01-24T11:27:46.937 に答える
1

結果をエコーアウトするのではなく、次のような配列に格納します

<?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];  

?>

簡略化されたコードの編集を更新

コードを少し単純化できる可能性があります。このようにすると、2つ目の配列を作成して、既存の配列を操作する手間が省けます。何かのためにその初期配列が必要でない限り、これはうまくいくはずです

<?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];  

?>
于 2013-01-24T11:31:26.077 に答える
0

これを使って

$resultAsArray = explode(" ", $binaryOctets);
于 2013-01-24T11:29:02.880 に答える