如何使用PHP将“十进制到十六进制转换”的数字写入.csv文件

时间:2018-03-31 20:48:27

标签: php loops hex decimal

尝试编写一组从十进制转换为十六进制的数字到.csv文件。 以下代码将所需的输出放在BROWSER中;

for ($i=0;$i<=15;$i++ ) {
    for ($j=0;$j<=15;$j++ ) {           
    echo dechex($i).",".dechex($j)." - ";}}

A portion of browser output is attached. from '0,0' to 'f,f'.

以下代码用于将(与浏览器相同的输出)写入.csv文件,进入无限循环。感谢帮助。

$file = "colors.csv";       
$FH = fopen ($file, 'w') or die ("$file cannot  be opened for writing.");

for ($i=0;$i<=15;$i++ ) {   
for ($j=0;$j<=15;$j++ ) {           
        $i=dechex($i);
        $j=dechex($j);      
              fwrite ($FH, "$i");
              fwrite ($FH, ",");
              fwrite ($FH, "$j");
              fwrite ($FH, "\n");}}

@Mark Ba​​ker,@ Nico Hasse,(10小时后)感谢您的输入,以下代码 工作中。主要的推论是:

1 - fopen()位于for()个循环内。 2-在fwrite($FH,"w")中,“w”更改为“a” 3-对于$i,$j>9,十六进制#s不能通过常规方式递增, 在循环结束时$i,$j被转换回十进制。

`for ($i=0;$i<=15;$i++ ) {
    for ($j=0;$j<=15;$j++ ) {
$file = "colors.csv";
        $FH = fopen ($file, "a") or die ("$file cannot be opened for writing.");        
            $i=dechex($i);
            $j=dechex($j);
            fwrite($FH, $i.",".$j."\n");
            $i=hexdec($i);
            $j=hexdec($j);
            fclose($FH);}
                }`      

1 个答案:

答案 0 :(得分:0)

这样简单的事情出了什么问题
$file = "colors.csv";       
$FH = fopen ($file, 'w')
    or die ("$file cannot  be opened for writing.");

for ($i=0; $i<=15; $i++) {   
    for ($j=0; $j<=15; $j++) {           
        fwrite ($FH, dechex($i));
        fwrite ($FH, ",");
        fwrite ($FH, dechex($j));
        fwrite ($FH, "\n");
   }
}