回答:
STDIN
13文字で行を読み取ることができます。
fgets(STDIN);
ファイルからの読み取り:
file('filename')
ファイルの行の配列を返します。
のfputs
代わりにfwrite
を使用すると、文字が節約されますが、次の方法よりも短い方法は考えられません。
fputs(fopen('filename','w')); //use 'a' if you're appending to a file instead of overwriting
これはわずかに短いです:
file_put_contents('filename');
入力形式によっては、fgetcsvとfscanfもバイトセーバーになることがよくあります。
たとえば、入力の各行がスペースで区切られた2つの整数で構成されているとします。これらの値を配列に読み込むには、次のいずれかを使用できます。
$x=split(' ',fgets(STDIN)); // 27 bytes
$x=fgetcsv(STDIN,0,' '); // 24 bytes
$x=fscanf(STDIN,'%d%d'); // 24 bytes
または、それぞれを別の変数に読み込みたい場合:
list($a,$b)=split(' ',fgets(STDIN)); // 36 bytes
list($a,$b)=fgetcsv(STDIN,0,' '); // 33 bytes
fscanf(STDIN,'%d%d',$a,$b); // 27 bytes
単一行の入力がある場合は、-F
and $argn
を使用してSTDINから読み取ります。これはわずか5バイトで、他の方法よりもはるかに短いです。
基本的に-F
、コードは入力の1行ごとに1回実行され、$argn
その入力行の文字列で埋められます。詳細:https : //www.php.net/manual/en/features.commandline.options.php
複数行入力がある場合は、を使用します$argv
。$argv
インデックスから始まる配列で1
、コードに渡すすべての引数が含まれます。したがって、使用できるの$argv[1]
は8バイトだけです。複数の引数を渡してそれらをループすることもできますがfor(;$a=$argv[++$i];)
、通常は他のメソッドよりも短くなります。
例1:オンラインで試す!
例2:オンラインで試す!
詳細:https : //www.php.net/manual/en/reserved.variables.argv.php