我有这个功能:
function permGen($a,$b,$c,$d,$e,$f,$g) {
foreach ($a as $key1 => $value1){
foreach($b as $key2 => $value2){
foreach($c as $key3 => $value3) {
print trim($d[rand(0,count($d)-1)]).trim($value1).trim($e[rand(0,count($e)-1)]).trim($value2).trim($f[rand(0,count($f)-1)]).trim($value3).$g;
}
}
}
}
这是我需要的输出,当我在屏幕上打印时,它可以正常工作。
假设我没有任何问题地定义所有参数。现在这是问题,当我把permGen($ arguments ....);有用。但是当我尝试通过这样的文件处理在文件中写这个时,
$handle = fopen('new.txt', 'w+');
fwrite($handle, permGen($arguments...));
它似乎无法奏效。它创建了一个文件,但没有任何内容。我尝试替换打印并返回。然后它只是在new.txt中给出了一个循环,没有别的东西。似乎没有什么工作按照我想要的输出。
由于
答案 0 :(得分:1)
function permGen($a,$b,$c,$d,$e,$f,$g) {
$output = '';
foreach ($a as $key1 => $value1){
foreach($b as $key2 => $value2){
foreach($c as $key3 => $value3) {
$output .= trim($d[rand(0,count($d)-1)]).trim($value1).trim($e[rand(0,count($e)-1)]).trim($value2).trim($f[rand(0,count($f)-1)]).trim($value3).$g;
}
}
}
return $output;
}
答案 1 :(得分:1)
function permGen($handle, $a,$b,$c,$d,$e,$f,$g) {
foreach ($a as $key1 => $value1){
foreach($b as $key2 => $value2){
foreach($c as $key3 => $value3) {
fwrite(
$handle,
trim($d[rand(0,count($d)-1)]).trim($value1).trim($e[rand(0,count($e)-1)]).trim($value2).trim($f[rand(0,count($f)-1)]).trim($value3).$g;
);
}
}
}
}
// To write to a file
$handle = fopen('new.txt', 'w+');
permGen($handle, $other, $arguments, ...);
fclose($handle);
// To write to normal output (browser, whatever)
$handle = fopen('php://output', 'w');
permGen($handle, $other, $arguments, ...);
fclose($handle);
修改强>
如果您不想以任何方式修改您的功能,那么您可以使用输出缓冲来捕获打印输出:
ob_start();
permGen($arguments...);
$output = ob_get_contents();
ob_end_clean();
file_put_contents(
'new.txt',
$output,
FILE_APPEND
);