From wiki
Revision as of 20:50, 3 February 2021 by Hdridder (talk | contribs) (→‎Arrays)
Jump to navigation Jump to search


Script language for dynamic web-pages. The syntax and concepts used are similar to Perl

Limited number of loops:

for ($i = 0; $i <= 6; $i++) {
  echo "Loop number: $i ";
Return the shellcommand with everything that might confuse the shell escaped.
Executed <cmd> in the shell, append the command output to he array <outputarray> and set <returnvar> to the returnvalue of the command.
Also the last line of the command output is returned
Execute <cmd> (output from excapedshellcmd) in the shell, return the command output.
date("Y-m-d h:i:s")
Current timestamp (YYYY-mm-dd HH:MM:SS)
sprintf("%7.2f",$float )
Format a number (7 digits, 2 decemals)
strpos($string, $search,$start)
Return position of $search exists in $string. When it is not in, return FALSE. Start searching at position $start (optional). Simple test on strpos - if (strpos(x,y)) {} - does not differ between position 0 and FALSE. Test on position 2 or count from the end by setting $start to a negative value (possible since PHP7.1).
Return $string with $old replaced by $new
Round $float to <precision> decimals (0 is default)

Regular expressions

PHP is Perl-like, patterns need delimiters (default is /<pattern>/ )

preg_match($pattern, $string)
Return 1 if $pattern exists in $string
Split $string into an array on a pattern (in this example on white-spaces and equality signs.
Replace matches with the pattern in $string (in this example to remove comments from a line)


Almost all you need to know about files. For writing open with 'w' and fwrite($fh,$line)

$fh = fopen($filename, 'r') or die('Unable to open '.$file);
while(!feof($fh)) {
  $line =  fgets($fh);


All variables are local to the function. You have to pass everything it needs, or declare variables as GLOBAL

function func1($arg1, $arg2)
    GLOBAL $vardeclaredoutside
    return $value;

Only one value can be returned but you can return arrays.

function func1()
    return array ($value1, $value2);

list($val1,$val2) = func1();


arr1 = ( val1, val2, val3 )
Create an indexed array. The keys are the range 0..arraylength.
Add elements val1 and val2 to the end of $arr1
$arr1 = array(key1=>val1, key2=>val2, key3=>val3)
$arr2[key1] = val1
Create an associative array (like a hash in perl)
Return the number of elements (length) of an array
foreach($arr1 as $value) { codeblock }
Loop over an indexed array
foreach($arr1 as $key => $value) { codeblock }
Loop over an associative array


On debian (and its derivates)

apt-get install php-fpm php-mysql
Install php7 and mysql support
Fix php security by editing /etc/php/7.0/fpm/php.ini
Uncomment line with cgi.fix_pathinfo and set it to 0

php7.4 not in repository

apt -y install lsb-release apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg
echo "deb $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php7.4
php -v