尝试编写一组从十进制转换为十六进制的数字到.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 Baker,@ 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);}
}`
答案 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");
}
}