PHP-尝试通过fwrite将函数输出写入文件

PHP-尝试通过fwrite将函数输出写入文件,php,function,fwrite,Php,Function,Fwrite,时间已经晚了(无论如何,在欧洲),我的头脑被为什么找不到上述问题的答案所阻塞 我的目标是有一个像keygen这样的程序,首先写入外部的.csv或.txt文件。接下来的事情暂时可以忽略不计 无论如何,我看不出我如何能够将我的函数的组合工作写入一个文件并谦虚地寻求帮助 <?php if (isset($_POST["codeCount"])) $codeCount = $_POST["codeCount"]; if (isset($_POST["digitsCount"]))

时间已经晚了(无论如何,在欧洲),我的头脑被为什么找不到上述问题的答案所阻塞

我的目标是有一个像keygen这样的程序,首先写入外部的.csv或.txt文件。接下来的事情暂时可以忽略不计

无论如何,我看不出我如何能够将我的函数的组合工作写入一个文件并谦虚地寻求帮助

<?php
if (isset($_POST["codeCount"]))
    $codeCount = $_POST["codeCount"];
if (isset($_POST["digitsCount"]))
    $digitsCount = $_POST["digitsCount"];
if (isset($_POST["blockCount"]))
    $blockCount = $_POST["blockCount"];

#Generieren eines Blocks mit x Digits
function keygen($digitsCount){
    $charpool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
    for ($i=0; $i < $digitsCount; $i++) { 
        $five = substr($charpool, random_int(0, strlen($charpool)-1), 1);
        echo $five;
    }
}

#Wie viele Blöcke soll es geben?
function keygenLong($blockCount, $digitsCount){
    for ($i=0; $i < $blockCount; $i++) { 
        echo keygen($digitsCount);
        if ($i != $blockCount-1) {
            echo "-";   
        }
    }
}


#Wie viele Codes benötigen wir ingesamt?
function codeOutput($codeCount, $blockCount, $digitsCount){
    for ($i=0; $i < $codeCount; $i++) { 
        keygenLong($blockCount, $digitsCount);
        echo "<br>";
    }
}

codeOutput($codeCount, $blockCount, $digitsCount);


// $code = "codeOutput";
// $string = $code($codeCount, $blockCount, $digitsCount);

if (isset($_POST["submit"])) {

    $file = fopen("keys.txt","w");

    fwrite($file, codeOutput($codeCount, $blockCount, $digitsCount);
);

    fclose($file);
}

让您的函数
返回值,而不是
回送值
——将它们输出。然后,您可以将值分配给变量并将其写入文件

比如说

function keygen($digitsCount){
    $charpool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    for ($i=0; $i < $digitsCount; $i++) { 
        $five[] = substr($charpool, random_int(0, strlen($charpool)-1), 1);
    }
    return implode('', $five);
}

function keygenLong($blockCount, $digitsCount){
    for ($i=0; $i < $blockCount; $i++) { 
        $out[] = keygen($digitsCount);
    }
    return implode('-', $out);
}

function codeOutput($codeCount, $blockCount, $digitsCount){
    for ($i=0; $i < $codeCount; $i++) { 
        $out[] = keygenLong($blockCount, $digitsCount);
    }
    return $out; // this one is still an array
}

$data = codeOutput($codeCount, $blockCount, $digitsCount);
或HTML的输出

echo implode('<br>', $data);
回波内爆(“
”,$data);
让您的函数
返回值,而不是
回送值
——将它们输出。然后,您可以将值分配给变量并将其写入文件

比如说

function keygen($digitsCount){
    $charpool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    for ($i=0; $i < $digitsCount; $i++) { 
        $five[] = substr($charpool, random_int(0, strlen($charpool)-1), 1);
    }
    return implode('', $five);
}

function keygenLong($blockCount, $digitsCount){
    for ($i=0; $i < $blockCount; $i++) { 
        $out[] = keygen($digitsCount);
    }
    return implode('-', $out);
}

function codeOutput($codeCount, $blockCount, $digitsCount){
    for ($i=0; $i < $codeCount; $i++) { 
        $out[] = keygenLong($blockCount, $digitsCount);
    }
    return $out; // this one is still an array
}

$data = codeOutput($codeCount, $blockCount, $digitsCount);
或HTML的输出

echo implode('<br>', $data);
回波内爆(“
”,$data);
您当前正在向文件写入硬编码字符串,您想向其中写入什么?让您的函数
返回
值,而不是
回送
-将其输出。然后您可以将值分配给一个变量,并将其写入文件,但随后for循环被忽略,我将不会得到动态值output@SamAlex显然,在当前向文件写入硬编码字符串后,您将收集值并返回
,要向其写入什么?让函数
返回值,而不是
回送值
——将它们输出。然后您可以将值分配给一个变量,并将其写入文件,但随后for循环被忽略,我将不会得到动态值output@SamAlex显然,您将收集值并在循环后返回