![](/img/trans.png)
[英]How do I print a barcode using barcode generator for PHP onto a pdf formatted page where I want it?
[英]How do I print the triangular series onto a file using PHP?
我要做的是創建一個名為triangular_10.txt
的文件,其中文件名中的數字是用戶輸入的數字。 從那里我希望文本文件具有三角形的數字系列。 因此,如果用戶輸入 10,它將顯示三角形系列的前 10 個數字。 到目前為止,文件名更改正在起作用。
我用於 PHP 的算法在這里: http://www.codecodex.com/wiki/Calculate_a_triangle_number
例如。 用戶輸入txt
文件中的結果是triangular series = [1, 3, 6, 10, 15, 21, 28, 36, 45]
這是我到目前為止所擁有的,但我沒有任何運氣! 目前它只將我輸入的數字寫入txt
文件,沒有別的!
$number = $_POST['number-entered'];
foreach(range(1, 1000) as $i) {
$triangle_numbers[] = $i * ($i + 1) / 2;
}
//make a file
$contents = fopen('gs://a1-task22020.appspot.com/triangular_'.$number. ".txt", "w");
fwrite($contents, $number);
//open the file
$contents = fopen('gs://a1-task22020.appspot.com/'.$contents, 'w');
// re-open the document if you put something in it
fwrite($contents, $number);
fclose($contents);
}
}
由於我確認保存到文件本身不是問題,因此我發布了 3 個解決方案
$number = intval($_POST['number-entered']); // convert target number to string;
$triangle_numbers = [];
// SOLUTION 0 (no change to your loop, but you should use something else, range(1,1000) is very bad there)
foreach (range(1, 1000) as $i) {
$triangle_numbers[] = $i * ($i + 1) / 2;
}
$triangle_numbers = array_slice($triangle_numbers,0,$number);
// SOLUTION 1:
foreach ( range(1, $number) as $i ) { //we don't need to go all the way to 1000 if user only wants 5, and if they want 2000 we are covered
$triangle_numbers[] = $i * ( $i + 1 ) / 2;
}
// SOLUTION 2
for ($i = 1; $i<=$number; $i++) { //it's as above, i just changed the loop
$triangle_numbers[] = $i * ($i + 1) / 2;
}
// rest is pretty much the same
//edit, i removed weird reopen part. it made you write to the same line over and over
$contents = fopen('here.txt', "w");
fwrite($contents, $number . "\n");
fwrite($contents, implode(', ', $triangle_numbers)); // read https://www.php.net/manual/en/function.implode.php
fwrite($contents, "\n$number\n");
fclose($contents);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.