Tips till programmeringsolympiaden

I uppgifterna till programmeringsolympiaden kan det vara smidigt att kunna läsa in värden under programmets gång istället för att göra en massa formulär. Här finns ett exempel på hur man kan göra detta då man kör php i terminalen.

För att köra programmet som i detta exempel heter ex_cli.php gör du så här:

<?php
/**
 * Detta är ett litet exempel på CLI-php.
 */
// Ställa in så att man ser alla fel utom NOTICE.
error_reporting(E_ALL ^ E_NOTICE);
// Rensa skärmen.
system('clear');
// Utskrift från PHP. OBS! \n för att byta rad.
echo "Välkommen till denna testfil\n";
?>
 
    Här är inte PHP igång så detta kommer att skrivas ut ;-)
 
<?php
echo "Ange ett tal: ";
// Läsa in från tangetbordet.
$handle = fopen("php://stdin", "r");
$tal = (int) fgets($handle); // Tvingar till heltal.
 
// Exempel på en styrande sats.
if ($tal > 10) {
  echo "Du skrev in ett tal större än 10...\n\n";
}
else {
  echo "Du skrev in ett tal mindre än eller lika med 10...\n\n";
}
 
// Exempel på en loop.
$i = 0;
while ($i < $tal) {
  echo "\nNr. " . $i;
  $i++;
}
echo "\nSkriv något: ";
 
// För att läsa in en sträng. trim() tar bort radbrytning på slutet.
$str = trim(fgets($handle));
echo $str . $str . $str . "\n";  // Skriver ut strängen 3 gånger utan radbrytning emellan.