<?php
  // bubble_sort.php
  // RJM Programming
  // November, 2014
  // Numerically (bubble) sort some numbers
  //    Web browsing ... use url like ...
  //         http://www.rjmprogramming.com.au/Linux/awk/csh/bubble_sort.php?jsize=3&jmin=76&jmax=99&imode=1
  //    Curl ... use call like ...
  //         curl http://www.rjmprogramming.com.au/Linux/awk/csh/bubble_sort.php?jsize=3@76@99@1
  //    PHP command line ... use call like ...
  //         ./bubble_sort.php 3 76 99 1
  
  if ($argv) {
   $csf = dirname(__FILE__) . "/bubble_sort.ksh ";
   foreach ($argv as $arg) {   // PHP command line
    if (strpos(urldecode($arg), ".php") === false) $csf .= ($arg . " ");
   }
   exec($csf . " > " . dirname(__FILE__) . "/bubble_sort.txt 2> " . dirname(__FILE__) . "/bubble_sort.err");
  } else {  // Web browsing or Curl
   exec(dirname(__FILE__) . "/bubble_sort.ksh " . str_replace("@", " ", urldecode($_GET['jsize'])) . " " . urldecode($_GET['jmin']) . " " . urldecode($_GET['jmax']) . " " . urldecode($_GET['imode']) . " > " . dirname(__FILE__) . "/bubble_sort.txt 2> " . dirname(__FILE__) . "/bubble_sort.err");
  }
  
  if ($argv || str_replace("@", " ", urldecode($_GET['jsize'])) != urldecode($_GET['jsize'])) {  // PHP command line or Curl
    echo file_get_contents(dirname(__FILE__) . "/bubble_sort.txt");
  } else {  // Web browsing
    echo str_replace("\n", "<br>", file_get_contents(dirname(__FILE__) . "/bubble_sort.txt"));
  }
?>
