<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=PHP</id>
	<title>PHP - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=PHP"/>
	<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=PHP&amp;action=history"/>
	<updated>2026-04-17T22:51:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://aznot.com/index.php?title=PHP&amp;diff=9408&amp;oldid=prev</id>
		<title>Kenneth: /* Backtrace */</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=PHP&amp;diff=9408&amp;oldid=prev"/>
		<updated>2026-01-05T08:25:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Backtrace&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:25, 5 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l799&quot;&gt;Line 799:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 799:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://us2.php.net/manual/en/function.error-log.php PHP: error_log - Manual]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://us2.php.net/manual/en/function.error-log.php PHP: error_log - Manual]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  error_log(&amp;quot;Oracle database not available!&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  error_log(&amp;quot;Oracle database not available!&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Dump Variable ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Display Contents of variable or Array:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; var_dump($my_var_or_array);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Backtrace ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Backtrace ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=PHP&amp;diff=4566&amp;oldid=prev</id>
		<title>Kenneth: /* MySQL */</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=PHP&amp;diff=4566&amp;oldid=prev"/>
		<updated>2018-01-04T05:43:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;MySQL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==PHP==&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
=== variables ===&lt;br /&gt;
&lt;br /&gt;
Variable:&lt;br /&gt;
 $str = &amp;quot;string&amp;quot;;&lt;br /&gt;
 $int = 1;&lt;br /&gt;
 $flt = 3.141;&lt;br /&gt;
 $obj = new Object();&lt;br /&gt;
 $arry = array(1, 2, 3);&lt;br /&gt;
 $empty_array = array();&lt;br /&gt;
 $null = NULL;&lt;br /&gt;
&lt;br /&gt;
global variable: (to access inside function)&lt;br /&gt;
  $var = 1&lt;br /&gt;
  function a() {&lt;br /&gt;
    global $var;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Check if variable is empty:&lt;br /&gt;
 empty($var)&lt;br /&gt;
&lt;br /&gt;
Check if variable is set:&lt;br /&gt;
 isset($var)&lt;br /&gt;
&lt;br /&gt;
=== [http://us3.php.net/manual/en/language.control-structures.php Control Structures] ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if&lt;br /&gt;
else&lt;br /&gt;
elseif/else if&lt;br /&gt;
while&lt;br /&gt;
do-while&lt;br /&gt;
for&lt;br /&gt;
foreach&lt;br /&gt;
break&lt;br /&gt;
continue&lt;br /&gt;
switch&lt;br /&gt;
declare&lt;br /&gt;
return&lt;br /&gt;
require&lt;br /&gt;
include&lt;br /&gt;
require_once&lt;br /&gt;
include_once&lt;br /&gt;
goto&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://us3.php.net/manual/en/control-structures.if.php if] ===&lt;br /&gt;
&lt;br /&gt;
Comparison Operators: [http://us3.php.net/manual/en/language.operators.comparison.php]&lt;br /&gt;
 &amp;gt; (bigger than)&lt;br /&gt;
 &amp;gt;= (bigger than or equal to)&lt;br /&gt;
 == (equal)&lt;br /&gt;
 != (not equal)&lt;br /&gt;
 &amp;lt;&amp;gt; (not equal)&lt;br /&gt;
 &amp;lt; (smaller than)&lt;br /&gt;
 &amp;lt;= (smaller than or equal to)&lt;br /&gt;
&lt;br /&gt;
Strict equivalence operators:&lt;br /&gt;
 === (equal to and same type)&lt;br /&gt;
 !== (not equal to or not same type)&lt;br /&gt;
&lt;br /&gt;
Logical Operators: [http://us3.php.net/manual/en/language.operators.logical.php]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example 	Name 	Result&lt;br /&gt;
$a and $b 	And 	TRUE if both $a and $b are TRUE.&lt;br /&gt;
$a or $b 	Or 	TRUE if either $a or $b is TRUE.&lt;br /&gt;
$a xor $b 	Xor 	TRUE if either $a or $b is TRUE, but not both.&lt;br /&gt;
! $a 	Not 	TRUE if $a is not TRUE.&lt;br /&gt;
$a &amp;amp;&amp;amp; $b 	And 	TRUE if both $a and $b are TRUE.&lt;br /&gt;
$a || $b 	Or 	TRUE if either $a or $b is TRUE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ternary Operator - http://php.net/manual/en/language.operators.comparison.php:&lt;br /&gt;
 (expr1) ? (expr2_on_true) : (expr3_on_false);&lt;br /&gt;
 $var = (expr1) ? (expr2_on_true) : (expr3_on_false) ;&lt;br /&gt;
 $action = (empty($_POST[&amp;#039;action&amp;#039;])) ? &amp;#039;default&amp;#039; : $_POST[&amp;#039;action&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
=== for ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for (setup_expr1; cond_expr2; loop_expr3)&lt;br /&gt;
    statement&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for ($i = 1; $i &amp;lt;= 10; $i++) {&lt;br /&gt;
    echo $i;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
=== foreach ===&lt;br /&gt;
&lt;br /&gt;
Note: foreach works only on arrays and &amp;#039;[http://us3.php.net/manual/en/language.oop5.iterations.php iterate objects]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
foreach (array_expression as $value)&lt;br /&gt;
    statement&lt;br /&gt;
foreach (array_expression as $key =&amp;gt; $value)&lt;br /&gt;
    statement&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 foreach( $myarray as $value) { ... }&lt;br /&gt;
 foreach( $myarray as $key =&amp;gt; $value) { ... }&lt;br /&gt;
&lt;br /&gt;
=== while ===&lt;br /&gt;
&lt;br /&gt;
 while( [statement] ) { ... }&lt;br /&gt;
&lt;br /&gt;
=== break and continue ===&lt;br /&gt;
&lt;br /&gt;
break - ends execution of the current for, foreach, while, do-while or switch structure.&lt;br /&gt;
&lt;br /&gt;
 for(...) {&lt;br /&gt;
   ...&lt;br /&gt;
   break;  # exit for loop&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
continue - is used within looping structures to skip the rest of the current loop iteration and continue execution at the condition evaluation and then the beginning of the next iteration.&lt;br /&gt;
&lt;br /&gt;
 for(...) {&lt;br /&gt;
   ...&lt;br /&gt;
   continue;  # continue to next iteration&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== switch ===&lt;br /&gt;
&lt;br /&gt;
Series of IF statements (similar to &amp;#039;case statment&amp;#039; in other languages)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
switch ($i) {&lt;br /&gt;
    case 0:&lt;br /&gt;
        echo &amp;quot;i equals 0&amp;quot;;&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
       echo &amp;quot;i is not equal to 0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://www.php.net/manual/en/ref.strings.php Strings] ===&lt;br /&gt;
&lt;br /&gt;
Lower case: [http://php.net/manual/en/function.strtolower.php]&lt;br /&gt;
 strtolower( string $str );&lt;br /&gt;
&lt;br /&gt;
Upper case: [http://www.php.net/manual/en/function.strtoupper.php]&lt;br /&gt;
 strtoupper( string $str );&lt;br /&gt;
&lt;br /&gt;
Heredoc: [http://php.net/manual/en/language.types.string.php]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$str = &amp;lt;&amp;lt;&amp;lt;EOD&lt;br /&gt;
Example of string&lt;br /&gt;
spanning multiple lines&lt;br /&gt;
using heredoc syntax.&lt;br /&gt;
This variable is evaluated: $var&lt;br /&gt;
EOD;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== phpinfo ===&lt;br /&gt;
&lt;br /&gt;
phpinfo - http://php.net/manual/en/function.phpinfo.php&lt;br /&gt;
&lt;br /&gt;
 phpinfo();&lt;br /&gt;
&lt;br /&gt;
To see if mysql is supported:&lt;br /&gt;
 echo &amp;quot;&amp;lt;?php phpinfo(); ?&amp;gt;&amp;quot; | php | grep -i &amp;quot;mysql support&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== file io ===&lt;br /&gt;
&lt;br /&gt;
fopen — Opens file or URL: [http://us3.php.net/manual/en/function.fopen.php]&lt;br /&gt;
 # resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )&lt;br /&gt;
 $handle = fopen(&amp;quot;/home/rasmus/file.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pr&amp;gt;&lt;br /&gt;
mode 	Description&lt;br /&gt;
&amp;#039;r&amp;#039; 	Open for reading only; place the file pointer at the beginning of the file.&lt;br /&gt;
&amp;#039;r+&amp;#039; 	Open for reading and writing; place the file pointer at the beginning of the file.&lt;br /&gt;
&amp;#039;w&amp;#039; 	Open for writing only; place the file pointer at the beginning of the file and truncate&lt;br /&gt;
	the file to zero length. If the file does not exist, attempt to create it.&lt;br /&gt;
&amp;#039;w+&amp;#039; 	Open for reading and writing; place the file pointer at the beginning of the file and&lt;br /&gt;
	truncate the file to zero length. If the file does not exist, attempt to create it.&lt;br /&gt;
&amp;#039;a&amp;#039; 	Open for writing only; place the file pointer at the end of the file. If the file&lt;br /&gt;
	does not exist, attempt to create it.&lt;br /&gt;
&amp;#039;a+&amp;#039; 	Open for reading and writing; place the file pointer at the end of the file. If the file&lt;br /&gt;
	does not exist, attempt to create it.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== read ====&lt;br /&gt;
&lt;br /&gt;
Make array of lines of file:&lt;br /&gt;
 $lines = file( $file );&lt;br /&gt;
&lt;br /&gt;
Read line from file: (1024 byte buffer)&lt;br /&gt;
 $line = fgets( $file, 1024 );&lt;br /&gt;
&lt;br /&gt;
readfile - Reads a file and writes it to the output buffer: [http://us3.php.net/manual/en/function.readfile.php]&lt;br /&gt;
 # int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )&lt;br /&gt;
 readfile( $file );&lt;br /&gt;
&lt;br /&gt;
file — Reads entire file into an array: [http://us3.php.net/manual/en/function.file.php]&lt;br /&gt;
 # array file ( string $filename [, int $flags = 0 [, resource $context ]] )&lt;br /&gt;
 $lines = file(&amp;#039;http://www.example.com/&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
fread — Binary-safe file read: [http://us3.php.net/manual/en/function.fread.php]&lt;br /&gt;
 # string fread ( resource $handle , int $length )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// get contents of a file into a string&lt;br /&gt;
$filename = &amp;quot;/usr/local/something.txt&amp;quot;;&lt;br /&gt;
$handle = fopen($filename, &amp;quot;r&amp;quot;);&lt;br /&gt;
$contents = fread($handle, filesize($filename));&lt;br /&gt;
fclose($handle);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reading a file line by line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$handle = @fopen(&amp;quot;/tmp/inputfile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
if ($handle) {&lt;br /&gt;
    while (($buffer = fgets($handle, 4096)) !== false) {&lt;br /&gt;
        echo $buffer;&lt;br /&gt;
    }&lt;br /&gt;
    if (!feof($handle)) {&lt;br /&gt;
        echo &amp;quot;Error: unexpected fgets() fail\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    fclose($handle);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== write ====&lt;br /&gt;
&lt;br /&gt;
fwrite — Binary-safe file write: [http://us3.php.net/manual/en/function.fwrite.php]&lt;br /&gt;
 # int fwrite ( resource $handle , string $string [, int $length ] )&lt;br /&gt;
&lt;br /&gt;
 $fp = fopen(&amp;#039;data.txt&amp;#039;, &amp;#039;w&amp;#039;) or die(&amp;#039;unable to open for writing&amp;#039;);&lt;br /&gt;
 fwrite($fp, &amp;#039;1&amp;#039;);&lt;br /&gt;
 fclose($fp);&lt;br /&gt;
&lt;br /&gt;
=== Include other PHP Code ===&lt;br /&gt;
&lt;br /&gt;
 include - statement includes and evaluates the specified file&lt;br /&gt;
 include_once - statement includes and evaluates the specified file only if not already loaded&lt;br /&gt;
 require - is identical to include() except upon failure it will also produce a fatal E_COMPILE_ERROR level error.&lt;br /&gt;
 require_once - statement is identical to require() except PHP will check if the file has already been included&lt;br /&gt;
&lt;br /&gt;
 include &amp;#039;vars.php&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
=== Date and Time ===&lt;br /&gt;
&lt;br /&gt;
date - Format a local time/date [http://us3.php.net/manual/en/function.date.php]&lt;br /&gt;
 # string date ( string $format [, int $timestamp = time() ] )&lt;br /&gt;
 $strdate = date(&amp;#039;Y-m-d&amp;#039;);&lt;br /&gt;
 # 2010-06-01&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
format	Example&lt;br /&gt;
&lt;br /&gt;
Day&lt;br /&gt;
d	01 to 31&lt;br /&gt;
D	Mon, Sun&lt;br /&gt;
j	1 to 31&lt;br /&gt;
w	0 (sun) to 6 (sat)&lt;br /&gt;
z	0 to 365&lt;br /&gt;
&lt;br /&gt;
Month&lt;br /&gt;
n	1 to 12&lt;br /&gt;
m	01 to 12&lt;br /&gt;
M	Jan to Dec&lt;br /&gt;
&lt;br /&gt;
Year&lt;br /&gt;
Y	1999&lt;br /&gt;
y	99&lt;br /&gt;
&lt;br /&gt;
Time&lt;br /&gt;
g	1 - 12&lt;br /&gt;
a	am / pm&lt;br /&gt;
G	0 - 23&lt;br /&gt;
h	01 - 12&lt;br /&gt;
H (hr)	01 - 23&lt;br /&gt;
i (min)	00 - 59&lt;br /&gt;
s (sec)	00 - 59&lt;br /&gt;
U	Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTTP POST and GET and REQUEST ===&lt;br /&gt;
&lt;br /&gt;
 $var = $_POST[&amp;quot;param&amp;quot;];&lt;br /&gt;
 $var = $_GET[&amp;quot;param&amp;quot;];&lt;br /&gt;
 $var = $_REQUEST[&amp;quot;param&amp;quot;];  # includes GET, POST, and COOKIE&lt;br /&gt;
    # order is based on PHP variables_order configuration directive&lt;br /&gt;
&lt;br /&gt;
 $user = empty($_REQUEST[&amp;quot;user&amp;quot;]) ? &amp;#039;&amp;#039; : trim($_REQUEST[&amp;quot;user&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
=== $_SERVER ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$_SERVER[&amp;quot;HTTP_HOST&amp;quot;]		# default.t0e.org&lt;br /&gt;
$_SERVER[&amp;quot;SERVER_NAME&amp;quot;]		# default.t0e.org&lt;br /&gt;
$_SERVER[&amp;quot;SERVER_ADDR&amp;quot;]		# 24.2.94.68&lt;br /&gt;
$_SERVER[&amp;quot;REMOTE_ADDR&amp;quot;]		# 10.10.10.5&lt;br /&gt;
$_SERVER[&amp;quot;DOCUMENT_ROOT&amp;quot;]	# /www/default&lt;br /&gt;
$_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;]	# /www/default/index.php&lt;br /&gt;
$_SERVER[&amp;quot;REQUEST_METHOD&amp;quot;]	# GET&lt;br /&gt;
$_SERVER[&amp;quot;SCRIPT_NAME&amp;quot;]		# /index.php&lt;br /&gt;
$_SERVER[&amp;quot;PHP_SELF&amp;quot;]		# /index.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default error page: (don&amp;#039;t forget space at end)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Unauthorized!&amp;lt;/font&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
HTTP_HOST:			&amp;lt;?php echo $_SERVER[&amp;quot;HTTP_HOST&amp;quot;]       ?&amp;gt; &lt;br /&gt;
SERVER_NAME:		&amp;lt;?php echo $_SERVER[&amp;quot;SERVER_NAME&amp;quot;]     ?&amp;gt; &lt;br /&gt;
SERVER_ADDR:		&amp;lt;?php echo $_SERVER[&amp;quot;SERVER_ADDR&amp;quot;]     ?&amp;gt; &lt;br /&gt;
REMOTE_ADDR:		&amp;lt;?php echo $_SERVER[&amp;quot;REMOTE_ADDR&amp;quot;]     ?&amp;gt; &lt;br /&gt;
DOCUMENT_ROOT:		&amp;lt;?php echo $_SERVER[&amp;quot;DOCUMENT_ROOT&amp;quot;]   ?&amp;gt; &lt;br /&gt;
SCRIPT_FILENAME:	&amp;lt;?php echo $_SERVER[&amp;quot;SCRIPT_FILENAME&amp;quot;] ?&amp;gt; &lt;br /&gt;
REQUEST_METHOD:		&amp;lt;?php echo $_SERVER[&amp;quot;REQUEST_METHOD&amp;quot;]  ?&amp;gt; &lt;br /&gt;
SCRIPT_NAME:		&amp;lt;?php echo $_SERVER[&amp;quot;SCRIPT_NAME&amp;quot;]     ?&amp;gt; &lt;br /&gt;
PHP_SELF:			&amp;lt;?php echo $_SERVER[&amp;quot;PHP_SELF&amp;quot;]        ?&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [http://www.php.net/manual/en/ref.pcre.php Regular Expression] ===&lt;br /&gt;
&lt;br /&gt;
Match: [http://php.net/manual/en/function.preg-match.php]&lt;br /&gt;
 # int preg_match ( string $pattern , string $subject [, array &amp;amp;$matches [, int $flags = 0 [, int $offset = 0 ]]] )&lt;br /&gt;
 findcount = preg_match(&amp;#039;/^([a-zA-Z0-9_]*)$/&amp;#039;, $user )&lt;br /&gt;
 findcount = preg_match(&amp;#039;/^([a-zA-Z0-9_]*)$/&amp;#039;, $user, $matches )&lt;br /&gt;
 echo $matches[1];  # first paren match&lt;br /&gt;
&lt;br /&gt;
$matches will be an array filled with captured parenthesized subpattern (0 will have full pattern, 1 will have first match)&lt;br /&gt;
&lt;br /&gt;
=== [http://www.php.net/manual/en/ref.exec.php External Command Execution] ===&lt;br /&gt;
&lt;br /&gt;
exec — Execute an external program: (output to return string)&lt;br /&gt;
 # string exec ( string $command [, array &amp;amp;$output [, int &amp;amp;$return_var ]] )&lt;br /&gt;
 $lastline = exec( $command, $output, $return_var );&lt;br /&gt;
 exec( $command, $output = array() ); &lt;br /&gt;
&lt;br /&gt;
passthru — Execute an external program and display raw output: (output to buffer)&lt;br /&gt;
 # void passthru ( string $command [, int &amp;amp;$return_var ] )&lt;br /&gt;
 passthru( $command, $return_var );&lt;br /&gt;
&lt;br /&gt;
system — Execute an external program and display the output: (output to buffer)&lt;br /&gt;
 string system ( string $command [, int &amp;amp;$return_var ] )&lt;br /&gt;
 $lastline = system( $command, $return_var );&lt;br /&gt;
&lt;br /&gt;
Source: [http://us.php.net/manual/en/function.passthru.php PHP: passthru - Manual]&lt;br /&gt;
&lt;br /&gt;
=== File System ===&lt;br /&gt;
&lt;br /&gt;
PHP: file_exists - Manual - http://php.net/manual/en/function.file-exists.php&lt;br /&gt;
 bool file_exists ( string $filename )&lt;br /&gt;
&lt;br /&gt;
PHP: rename - Manual - http://php.net/manual/en/function.rename.php&lt;br /&gt;
 bool rename ( string $oldname , string $newname [, resource $context ] )&lt;br /&gt;
&lt;br /&gt;
=== [http://us3.php.net/manual/en/book.mail.php email] ===&lt;br /&gt;
&lt;br /&gt;
ini_set(&amp;quot;SMTP&amp;quot;,&amp;quot;smtp.example.com&amp;quot; );&lt;br /&gt;
ini_set(&amp;#039;sendmail_from&amp;#039;, &amp;#039;user@example.com&amp;#039;); &lt;br /&gt;
&lt;br /&gt;
mail - Send mail [http://us3.php.net/manual/en/function.mail.php]&lt;br /&gt;
 # bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )&lt;br /&gt;
&lt;br /&gt;
To Addresses in this format:&lt;br /&gt;
    user@example.com&lt;br /&gt;
    user@example.com, anotheruser@example.com&lt;br /&gt;
    User &amp;lt;user@example.com&amp;gt;&lt;br /&gt;
    User &amp;lt;user@example.com&amp;gt;, Another User &amp;lt;anotheruser@example.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE NOTE: I had to use &amp;quot;\n&amp;quot; instead of &amp;quot;\r\n&amp;quot; to work on an older debian system!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$to      = &amp;#039;nobody@example.com&amp;#039;;&lt;br /&gt;
$subject = &amp;#039;the subject&amp;#039;;&lt;br /&gt;
$message = &amp;#039;hello&amp;#039;;&lt;br /&gt;
$headers = &amp;#039;From: webmaster@example.com&amp;#039; . &amp;quot;\r\n&amp;quot; .&lt;br /&gt;
    &amp;#039;Reply-To: webmaster@example.com&amp;#039; . &amp;quot;\r\n&amp;quot; .&lt;br /&gt;
    &amp;#039;X-Mailer: PHP/&amp;#039; . phpversion();&lt;br /&gt;
&lt;br /&gt;
mail($to, $subject, $message, $headers);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HTML email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// To send HTML mail, the Content-type header must be set&lt;br /&gt;
$headers  = &amp;#039;MIME-Version: 1.0&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Content-type: text/html; charset=iso-8859-1&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Additional headers&lt;br /&gt;
$headers .= &amp;#039;To: Mary &amp;lt;mary@example.com&amp;gt;, Kelly &amp;lt;kelly@example.com&amp;gt;&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;From: Birthday Reminder &amp;lt;birthday@example.com&amp;gt;&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Cc: birthdayarchive@example.com&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
$headers .= &amp;#039;Bcc: birthdaycheck@example.com&amp;#039; . &amp;quot;\r\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Mail it&lt;br /&gt;
mail($to, $subject, $message, $headers);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MySQL ===&lt;br /&gt;
&lt;br /&gt;
--- mysqli ---&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$servername = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
$username = &amp;quot;username&amp;quot;;&lt;br /&gt;
$password = &amp;quot;password&amp;quot;;&lt;br /&gt;
$dbname = &amp;quot;myDB&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Create connection&lt;br /&gt;
$conn = new mysqli($servername, $username, $password, $dbname);&lt;br /&gt;
// Check connection&lt;br /&gt;
if ($conn-&amp;gt;connect_error) {&lt;br /&gt;
    die(&amp;quot;Connection failed: &amp;quot; . $conn-&amp;gt;connect_error);&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
$sql = &amp;quot;SELECT id, firstname, lastname FROM MyGuests&amp;quot;;&lt;br /&gt;
$result = $conn-&amp;gt;query($sql);&lt;br /&gt;
&lt;br /&gt;
if ($result-&amp;gt;num_rows &amp;gt; 0) {&lt;br /&gt;
    // output data of each row&lt;br /&gt;
    while($row = $result-&amp;gt;fetch_assoc()) {&lt;br /&gt;
        echo &amp;quot;id: &amp;quot; . $row[&amp;quot;id&amp;quot;]. &amp;quot; - Name: &amp;quot; . $row[&amp;quot;firstname&amp;quot;]. &amp;quot; &amp;quot; . $row[&amp;quot;lastname&amp;quot;]. &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;0 results&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
$conn-&amp;gt;close();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select - https://www.w3schools.com/php/php_mysql_select.asp&lt;br /&gt;
&lt;br /&gt;
Insert - https://www.w3schools.com/php/php_mysql_insert.asp&lt;br /&gt;
&lt;br /&gt;
--- old style ---&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Connecting, selecting database&lt;br /&gt;
$link = mysql_connect(&amp;#039;mysql_host&amp;#039;, &amp;#039;mysql_user&amp;#039;, &amp;#039;mysql_password&amp;#039;)&lt;br /&gt;
    or die(&amp;#039;Could not connect: &amp;#039; . mysql_error());&lt;br /&gt;
echo &amp;#039;Connected successfully&amp;#039;;&lt;br /&gt;
mysql_select_db(&amp;#039;my_database&amp;#039;) or die(&amp;#039;Could not select database&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
// Performing SQL query&lt;br /&gt;
$query = &amp;#039;SELECT * FROM my_table&amp;#039;;&lt;br /&gt;
$result = mysql_query($query) or die(&amp;#039;Query failed: &amp;#039; . mysql_error());&lt;br /&gt;
&lt;br /&gt;
// Printing results in HTML&lt;br /&gt;
echo &amp;quot;&amp;lt;table&amp;gt;\n&amp;quot;;&lt;br /&gt;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {&lt;br /&gt;
    echo &amp;quot;\t&amp;lt;tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
    foreach ($line as $col_value) {&lt;br /&gt;
        echo &amp;quot;\t\t&amp;lt;td&amp;gt;$col_value&amp;lt;/td&amp;gt;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo &amp;quot;\t&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
echo &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Free resultset&lt;br /&gt;
mysql_free_result($result);&lt;br /&gt;
&lt;br /&gt;
// Closing connection&lt;br /&gt;
mysql_close($link);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PHP: MySQL extension overview example - Manual - http://php.net/manual/en/mysql.examples-basic.php&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== [http://us3.php.net/manual/en/book.sockets.php Sockets] ===&lt;br /&gt;
&lt;br /&gt;
==== [http://us3.php.net/manual/en/function.stream-socket-client.php stream_socket_client] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@ $fp = stream_socket_client(&amp;quot;tcp://localhost:60002&amp;quot;, $errno, $errstr, 30);&lt;br /&gt;
if (!$fp) {&lt;br /&gt;
  echo &amp;quot;FAILURE: Unable to connect to server: $errstr $errno&amp;quot;;&lt;br /&gt;
  die();&lt;br /&gt;
}&lt;br /&gt;
fwrite($fp, $send_data);&lt;br /&gt;
$recv_data = fgets($fp, 1024);&lt;br /&gt;
fclose($fp);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$fp = stream_socket_client(&amp;quot;tcp://www.example.com:80&amp;quot;, $errno, $errstr, 30);&lt;br /&gt;
if (!$fp) {&lt;br /&gt;
    echo &amp;quot;$errstr ($errno)&amp;lt;br /&amp;gt;\n&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
    fwrite($fp, &amp;quot;GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n&amp;quot;);&lt;br /&gt;
    while (!feof($fp)) {&lt;br /&gt;
        echo fgets($fp, 1024);&lt;br /&gt;
    }&lt;br /&gt;
    fclose($fp);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Code ==&lt;br /&gt;
&lt;br /&gt;
=== Upload Single File ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Build ESX ISO&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
$upload_file = $_FILES[&amp;#039;fileselect&amp;#039;];&lt;br /&gt;
// $upload_file is array of:&lt;br /&gt;
// [name] =&amp;gt; screenshot.png&lt;br /&gt;
// [type] =&amp;gt; image/png&lt;br /&gt;
// [tmp_name] =&amp;gt; /tmp/phpPiUA5v&lt;br /&gt;
// [error] =&amp;gt; 0&lt;br /&gt;
// [size] =&amp;gt; 14537&lt;br /&gt;
&lt;br /&gt;
if($upload_file) {&lt;br /&gt;
    if ($upload_file[&amp;#039;error&amp;#039;] == UPLOAD_ERR_OK) {  &lt;br /&gt;
        $fn = $upload_file[&amp;#039;name&amp;#039;];  &lt;br /&gt;
        if (move_uploaded_file(  &lt;br /&gt;
                $upload_file[&amp;#039;tmp_name&amp;#039;],  &lt;br /&gt;
                &amp;#039;uploads/&amp;#039; . $fn)) {&lt;br /&gt;
            echo &amp;quot;&amp;lt;p&amp;gt;UPLOAD SUCCESS: $fn&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            echo &amp;quot;&amp;lt;p&amp;gt;UPLOAD FAILURE: $fn&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }  &lt;br /&gt;
}  &lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;upload&amp;quot; action=&amp;quot;single.php&amp;quot; method=&amp;quot;POST&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;  &lt;br /&gt;
&amp;lt;fieldset&amp;gt;  &lt;br /&gt;
&amp;lt;legend&amp;gt;HTML File Upload&amp;lt;/legend&amp;gt;  &lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;MAX_FILE_SIZE&amp;quot; name=&amp;quot;MAX_FILE_SIZE&amp;quot; value=&amp;quot;300000&amp;quot; /&amp;gt;  &lt;br /&gt;
&amp;lt;div&amp;gt;  &lt;br /&gt;
    &amp;lt;label for=&amp;quot;fileselect&amp;quot;&amp;gt;File to upload:&amp;lt;/label&amp;gt;  &lt;br /&gt;
    &amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;fileselect&amp;quot; name=&amp;quot;fileselect&amp;quot; /&amp;gt;  &lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&amp;lt;div id=&amp;quot;submitbutton&amp;quot;&amp;gt;  &lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Upload File&amp;lt;/button&amp;gt;  &lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&amp;lt;/fieldset&amp;gt;  &lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* PHP: move_uploaded_file - Manual - http://php.net/manual/en/function.move-uploaded-file.php&lt;br /&gt;
* How to Asynchronously Upload Files Using HTML5 and Ajax - SitePoint - http://www.sitepoint.com/html5-ajax-file-upload/&lt;br /&gt;
&lt;br /&gt;
=== Upload Multiple Files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;untitled&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
// Note: Make sure to create an &amp;#039;uploads/&amp;#039; folder next to this script&lt;br /&gt;
// and give apache permissions to write to it.&lt;br /&gt;
&lt;br /&gt;
// form submit&lt;br /&gt;
$files = $_FILES[&amp;#039;fileselect&amp;#039;];  &lt;br /&gt;
foreach ($files[&amp;#039;error&amp;#039;] as $id =&amp;gt; $err) {  &lt;br /&gt;
    if ($err == UPLOAD_ERR_OK) {  &lt;br /&gt;
        $fn = $files[&amp;#039;name&amp;#039;][$id];  &lt;br /&gt;
        if (move_uploaded_file(  &lt;br /&gt;
            $files[&amp;#039;tmp_name&amp;#039;][$id],  &lt;br /&gt;
            &amp;#039;uploads/&amp;#039; . $fn)) {&lt;br /&gt;
                echo &amp;quot;&amp;lt;p&amp;gt;File $fn uploaded.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
            } else {&lt;br /&gt;
                echo &amp;quot;&amp;lt;p&amp;gt;Error: failure to upload $fn!&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
    }  &lt;br /&gt;
}  &lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;form id=&amp;quot;upload&amp;quot; action=&amp;quot;upload.php&amp;quot; method=&amp;quot;POST&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;  &lt;br /&gt;
&amp;lt;fieldset&amp;gt;  &lt;br /&gt;
&amp;lt;legend&amp;gt;HTML File Upload&amp;lt;/legend&amp;gt;  &lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;MAX_FILE_SIZE&amp;quot; name=&amp;quot;MAX_FILE_SIZE&amp;quot; value=&amp;quot;300000&amp;quot; /&amp;gt;  &lt;br /&gt;
&amp;lt;div&amp;gt;  &lt;br /&gt;
    &amp;lt;label for=&amp;quot;fileselect&amp;quot;&amp;gt;Files to upload:&amp;lt;/label&amp;gt;  &lt;br /&gt;
    &amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;fileselect&amp;quot; name=&amp;quot;fileselect[]&amp;quot; multiple=&amp;quot;multiple&amp;quot; /&amp;gt;  &lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&amp;lt;div id=&amp;quot;submitbutton&amp;quot;&amp;gt;  &lt;br /&gt;
    &amp;lt;button type=&amp;quot;submit&amp;quot;&amp;gt;Upload Files&amp;lt;/button&amp;gt;  &lt;br /&gt;
&amp;lt;/div&amp;gt;  &lt;br /&gt;
&amp;lt;/fieldset&amp;gt;  &lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* PHP: move_uploaded_file - Manual - http://php.net/manual/en/function.move-uploaded-file.php&lt;br /&gt;
* How to Asynchronously Upload Files Using HTML5 and Ajax - SitePoint - http://www.sitepoint.com/html5-ajax-file-upload/&lt;br /&gt;
&lt;br /&gt;
== Editors ==&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
* Syntax Highlighting&lt;br /&gt;
* Function reference&lt;br /&gt;
* Function completion&lt;br /&gt;
&lt;br /&gt;
Wants:&lt;br /&gt;
* Jump to function&lt;br /&gt;
* HTML page view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lists:&lt;br /&gt;
*[http://www.php-editors.com/ PHP Editor Review]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/List_of_PHP_editors List of PHP editors - Wikipedia]&lt;br /&gt;
*[http://www.ibm.com/developerworks/opensource/library/os-php-ide/index.html Seven great PHP IDEs compared]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NetBeans:&lt;br /&gt;
*[http://php.netbeans.org/ PHP NetBeans]&lt;br /&gt;
**[http://blogs.vinuthomas.com/2008/09/27/netbeans-php-ide/ NetBeans PHP IDE | VT&amp;#039;s Tech Blog]&lt;br /&gt;
**[http://php.netbeans.org/docs/configure-php-environment-windows.html php: Installing and configuring PHP, Apache, and MySQL for PHP development in Windows]&lt;br /&gt;
**[http://www.netbeans.org/kb/trails/php.html PHP Learning Trail - NetBeans IDE Tutorials, Guides and Articles]&lt;br /&gt;
**[http://www.netbeans.org/kb/docs/php/debugging.html Debugging PHP Source Code in the NetBeans IDE for PHP Editor]&lt;br /&gt;
**[http://php.netbeans.org/docs/configure-php-environment-windows.html php: Installing and configuring PHP, Apache, and MySQL for PHP development in Windows]&lt;br /&gt;
**FTP only (no SFTP)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eclipse:&lt;br /&gt;
* [http://eclipse.org Eclipse]&lt;br /&gt;
** [http://www.eclipse.org/proposals/php-ide/ Eclipse PHP Integrated Development Environment] (proposal only)&lt;br /&gt;
** [http://www.eclipse.org/ Eclipse] (good solution)&lt;br /&gt;
*** Download Classic version, then install PHPEclipse plugin&lt;br /&gt;
** [http://www.phpeclipse.de/ PHPEclipse]&lt;br /&gt;
*** [http://sourceforge.net/projects/phpeclipse/ SourceForge.net: PHPeclipse - PHP Eclipse-Plugin]&lt;br /&gt;
*** [http://www.phpeclipse.de/wiki/Installation Installation - PHPEclipse]&lt;br /&gt;
** [http://www.zend.com/en/products/studio/ Zend Studio for Eclipse] ($400)&lt;br /&gt;
** [http://www.jcraft.com/eclipse-sftp/ SFTP Plug-in for Eclipse]&lt;br /&gt;
** [http://www.chris-alex-thomas.com/projects/esftp/ Eclipse SFTP Plugin (ESftp) - Homepage]&lt;br /&gt;
*** [http://esftp.sf.net/ Eclipse SFTP Plugin (ESftp) - Homepage] (redirected)&lt;br /&gt;
*** [http://sf.net/projects/esftp  Eclipse SFTP Plugin (ESftp) - Sourceforge site]&lt;br /&gt;
&lt;br /&gt;
==Increasing Available Memory==&lt;br /&gt;
The default memory limit is about 8MB:&lt;br /&gt;
 PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate ... bytes) in ...&lt;br /&gt;
&lt;br /&gt;
*[http://drupal.org/node/29268 Increase memory in your php.ini]&lt;br /&gt;
*[http://www.mydigitallife.info/2006/04/23/php-allowed-memory-size-exchausted-fatal-error/ PHP Allowed Memory Size Exchausted Fatal Error]&lt;br /&gt;
&lt;br /&gt;
==Executing External Applications==&lt;br /&gt;
&lt;br /&gt;
*[http://us.php.net/manual/en/language.operators.execution.php Execution Operators]&lt;br /&gt;
**Description: PHP supports one execution operator: backticks (``). Note that these are not single-quotes! PHP will attempt to execute the contents of the backticks as a shell command; the output will be returned (i.e., it won&amp;#039;t simply be dumped to output; it can be assigned to a variable). Use of the backtick operator is identical to shell_exec().&lt;br /&gt;
**Example: $output = `ls -al`;&lt;br /&gt;
*[http://us.php.net/manual/en/function.exec.php exec]&lt;br /&gt;
**Description: exec — Execute an external program&lt;br /&gt;
**Syntax: string exec ( string $command [, array &amp;amp;$output [, int &amp;amp;$return_var]] )&lt;br /&gt;
**Return Values: The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.&lt;br /&gt;
**Example: echo exec(&amp;#039;whoami&amp;#039;);&lt;br /&gt;
*[http://us.php.net/manual/en/function.system.php system]&lt;br /&gt;
**Description: system — Execute an external program and display the output&lt;br /&gt;
**Syntax: string system ( string $command [, int &amp;amp;$return_var] )&lt;br /&gt;
**Return Values: Returns the last line of the command output on success, and FALSE  on failure.&lt;br /&gt;
**Example: $last_line = system(&amp;#039;ls&amp;#039;, $retval);&lt;br /&gt;
*[http://us.php.net/manual/en/function.passthru.php passthru]&lt;br /&gt;
**Description: passthru — Execute an external program and display raw output&lt;br /&gt;
**Syntax: void passthru ( string $command [, int &amp;amp;$return_var] )&lt;br /&gt;
**Return Values: No value is returned.&lt;br /&gt;
*[http://us.php.net/manual/en/function.shell-exec.php shell_exec]&lt;br /&gt;
**Description: shell_exec — Execute command via shell and return the complete output as a string&lt;br /&gt;
**Return Values: The output from the executed command.&lt;br /&gt;
**Example: $output = shell_exec(&amp;#039;ls -lart&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crypt and MD5==&lt;br /&gt;
&lt;br /&gt;
===Crypt===&lt;br /&gt;
[http://us.php.net/manual/en/function.crypt.php crypt()]&lt;br /&gt;
 $secret = &amp;quot;password&amp;quot;;&lt;br /&gt;
 $crypt_secret = crypt($secret);&lt;br /&gt;
 $salt = substr($crypt_secret, 0, 2);&lt;br /&gt;
 ...&lt;br /&gt;
 $user_input = $_POST[&amp;quot;password&amp;quot;]&lt;br /&gt;
 if( crypt( $user_input, $salt ) == $crypt_secret )&lt;br /&gt;
   echo &amp;quot;correct password&amp;quot;;&lt;br /&gt;
 # or&lt;br /&gt;
 if( crypt( $user_input, $crypt_secret ) == $crypt_secret )&lt;br /&gt;
   echo &amp;quot;correct password&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
===MD5===&lt;br /&gt;
[http://us.php.net/manual/en/function.md5.php md5()]&lt;br /&gt;
 $secret = &amp;quot;password&amp;quot;;&lt;br /&gt;
 $hash = md5($secret);&lt;br /&gt;
 ...&lt;br /&gt;
 if( md5($user_input) == $hash )&lt;br /&gt;
   echo &amp;quot;correct password&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
==Command Line PHP==&lt;br /&gt;
[http://www.php.net/features.commandline PHP.net: Using PHP from the command line]&lt;br /&gt;
&lt;br /&gt;
Arguments:&lt;br /&gt;
*As of PHP 4.3.0, the PHP variables $argc  and $argv are registered and filled in with the appropriate values when using the CLI SAPI.&lt;br /&gt;
 $argc - count of arguments&lt;br /&gt;
 $argv[] - arguments array&lt;br /&gt;
&lt;br /&gt;
STDIN:&lt;br /&gt;
 $stdin = fopen(&amp;#039;php://stdin&amp;#039;, &amp;#039;r&amp;#039;);&lt;br /&gt;
STDOUT:&lt;br /&gt;
 $stdout = fopen(&amp;#039;php://stdout&amp;#039;, &amp;#039;w&amp;#039;);&lt;br /&gt;
STDERR:&lt;br /&gt;
 $stderr = fopen(&amp;#039;php://stderr&amp;#039;, &amp;#039;w&amp;#039;);&lt;br /&gt;
*You do not need to explicitly close these streams, as they are closed automatically by PHP when your script ends.&lt;br /&gt;
&lt;br /&gt;
File Header:&lt;br /&gt;
 #!/usr/bin/php&lt;br /&gt;
&lt;br /&gt;
==Optimizing PHP==&lt;br /&gt;
*[http://phplens.com/lens/php-book/optimizing-debugging-php.php A HOWTO on Optimizing PHP]&lt;br /&gt;
*[http://www.sitepoint.com/blogs/2004/02/06/lazy-php-part-1/ Lazy PHP: Part 1]&lt;br /&gt;
&lt;br /&gt;
*[http://dealnews.com/developers/memcached.html Fastest languages for memcached]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PHP vs Python vs Perl==&lt;br /&gt;
*[http://www.sitepoint.com/blogs/2007/03/18/the-real-difference-between-php-and-python/ The real difference between PHP and Python]&lt;br /&gt;
*[http://wiki.w4py.org/python-vs-php.html Python vs. PHP]&lt;br /&gt;
*[http://lists.danga.com/pipermail/memcached/2006-June/002380.html PHP vs. Python vs. Perl]&lt;br /&gt;
*[http://dealnews.com/developers/memcached.html Fastest languages for memcached]&lt;br /&gt;
*[http://www.userscape.com/blog/index.php/site/comments/python_vs_php/ Python vs PHP]&lt;br /&gt;
*[http://blog.taragana.com/index.php/archive/java-versus-php-versus-python-versus-ruby-job-comparison/ Java versus PHP versus Python versus Ruby - Job Comparison]&lt;br /&gt;
*[http://mail.python.org/pipermail/python-list/2001-January/066996.html Python vs Ruby]&lt;br /&gt;
*[http://mail.python.org/pipermail/python-list/2004-December/298238.html PHP vs. Python]&lt;br /&gt;
&lt;br /&gt;
==PHP Frameworks==&lt;br /&gt;
See [[PHP Frameworks]]&lt;br /&gt;
&lt;br /&gt;
== HTTP Authentication ==&lt;br /&gt;
&lt;br /&gt;
[http://us3.php.net/features.http-auth PHP: HTTP authentication with PHP - Manual]&lt;br /&gt;
&lt;br /&gt;
Example #1 Basic HTTP Authentication example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if (!isset($_SERVER[&amp;#039;PHP_AUTH_USER&amp;#039;])) {&lt;br /&gt;
    header(&amp;#039;WWW-Authenticate: Basic realm=&amp;quot;My Realm&amp;quot;&amp;#039;);&lt;br /&gt;
    header(&amp;#039;HTTP/1.0 401 Unauthorized&amp;#039;);&lt;br /&gt;
    echo &amp;#039;Text to send if user hits Cancel button&amp;#039;;&lt;br /&gt;
    exit;&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;Hello {$_SERVER[&amp;#039;PHP_AUTH_USER&amp;#039;]}.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
    echo &amp;quot;&amp;lt;p&amp;gt;You entered {$_SERVER[&amp;#039;PHP_AUTH_PW&amp;#039;]} as your password.&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example #2 Digest HTTP Authentication example&lt;br /&gt;
* See http://us3.php.net/features.http-auth&lt;br /&gt;
&lt;br /&gt;
== HTTP Redirect ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
header(&amp;#039;Location: http://www.google.com/&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Over the top:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
header(&amp;#039;HTTP/1.1 301 Moved Permanently&amp;#039;);&lt;br /&gt;
header(&amp;#039;Location: http://www.google.com/&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;REFRESH&amp;quot; content=&amp;quot;0; url=http://www.google.com/&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow &amp;lt;a href=&amp;quot;http://www.google.com/&amp;quot;&amp;gt;this link&amp;lt;/a&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging to Apache ==&lt;br /&gt;
&lt;br /&gt;
[http://us2.php.net/manual/en/function.error-log.php PHP: error_log - Manual]&lt;br /&gt;
 error_log(&amp;quot;Oracle database not available!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
== Backtrace ==&lt;br /&gt;
&lt;br /&gt;
Similar to Java&amp;#039;s Stack Trace:&lt;br /&gt;
&lt;br /&gt;
[http://us2.php.net/manual/en/function.debug-backtrace.php PHP: debug_backtrace - Manual]&lt;br /&gt;
 var_dump(debug_backtrace());&lt;br /&gt;
&lt;br /&gt;
== Here Document ==&lt;br /&gt;
&lt;br /&gt;
[http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc PHP heredoc]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$xmlstr = &amp;lt;&amp;lt;&amp;lt;XML&lt;br /&gt;
&amp;lt;?xml version=&amp;#039;1.0&amp;#039; standalone=&amp;#039;yes&amp;#039;?&amp;gt;&lt;br /&gt;
&amp;lt;movies&amp;gt;&lt;br /&gt;
 &amp;lt;movie name=&amp;quot;joe&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;PHP: Behind the Parser&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;/movie&amp;gt;&lt;br /&gt;
&amp;lt;/movies&amp;gt;&lt;br /&gt;
XML;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== xml ==&lt;br /&gt;
&lt;br /&gt;
[http://www.php.net/manual/en/book.simplexml.php PHP: SimpleXML - Manual]&lt;br /&gt;
&lt;br /&gt;
[http://www.php.net/manual/en/class.simplexmlelement.php PHP: SimpleXMLElement - Manual]&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$xmlstr = &amp;lt;&amp;lt;&amp;lt;XML&lt;br /&gt;
&amp;lt;?xml version=&amp;#039;1.0&amp;#039; standalone=&amp;#039;yes&amp;#039;?&amp;gt;&lt;br /&gt;
&amp;lt;movies&amp;gt;&lt;br /&gt;
 &amp;lt;movie name=&amp;quot;joe&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;PHP: Behind the Parser&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;characters&amp;gt;&lt;br /&gt;
   &amp;lt;character&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Ms. Coder&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;Onlivia Actora&amp;lt;/actor&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&lt;br /&gt;
   &amp;lt;character&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Mr. Coder&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;actor&amp;gt;El Act&amp;amp;#211;r&amp;lt;/actor&amp;gt;&lt;br /&gt;
   &amp;lt;/character&amp;gt;&lt;br /&gt;
  &amp;lt;/characters&amp;gt;&lt;br /&gt;
  &amp;lt;plot&amp;gt;&lt;br /&gt;
   So, this language. It&amp;#039;s like, a programming language. Or is it a&lt;br /&gt;
   scripting language? All is revealed in this thrilling horror spoof&lt;br /&gt;
   of a documentary.&lt;br /&gt;
  &amp;lt;/plot&amp;gt;&lt;br /&gt;
  &amp;lt;great-lines&amp;gt;&lt;br /&gt;
   &amp;lt;line&amp;gt;PHP solves all my web problems&amp;lt;/line&amp;gt;&lt;br /&gt;
  &amp;lt;/great-lines&amp;gt;&lt;br /&gt;
  &amp;lt;rating type=&amp;quot;thumbs&amp;quot;&amp;gt;7&amp;lt;/rating&amp;gt;&lt;br /&gt;
  &amp;lt;rating type=&amp;quot;stars&amp;quot;&amp;gt;5&amp;lt;/rating&amp;gt;&lt;br /&gt;
 &amp;lt;/movie&amp;gt;&lt;br /&gt;
&amp;lt;/movies&amp;gt;&lt;br /&gt;
XML;&lt;br /&gt;
&lt;br /&gt;
$xml = new SimpleXMLElement($xmlstr);&lt;br /&gt;
&lt;br /&gt;
// or&lt;br /&gt;
//if(!$xml=simplexml_load_file(&amp;#039;users.xml&amp;#039;)){&lt;br /&gt;
//    trigger_error(&amp;#039;Error reading XML file&amp;#039;,E_USER_ERROR);&lt;br /&gt;
//}&lt;br /&gt;
&lt;br /&gt;
function dospecial($xml) {&lt;br /&gt;
  // Example of printing entity value&lt;br /&gt;
  if ($xml-&amp;gt;getName() == &amp;quot;line&amp;quot;) {&lt;br /&gt;
    // method #1&lt;br /&gt;
    echo &amp;quot;::Value: &amp;quot; . $xml . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  if ($xml-&amp;gt;getName() == &amp;quot;character&amp;quot;) {&lt;br /&gt;
    // method #2&lt;br /&gt;
    echo &amp;quot;::Value:(name) &amp;quot; . $xml-&amp;gt;name . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // Example of printing entity attribute&lt;br /&gt;
  if ($xml-&amp;gt;getName() == &amp;quot;rating&amp;quot;) {&lt;br /&gt;
    // method #1&lt;br /&gt;
    echo &amp;quot;::Attribute:(type) &amp;quot; . $xml[&amp;quot;type&amp;quot;] . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    // method #2&lt;br /&gt;
    foreach($xml-&amp;gt;attributes() as $name =&amp;gt; $value) {&lt;br /&gt;
      echo &amp;quot;::Attribute:(&amp;quot; . $name  . &amp;quot;) &amp;quot; . $value . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Walk the XML tree&lt;br /&gt;
function nav($xml, $space) {&lt;br /&gt;
  $space .= &amp;quot; - &amp;quot;;&lt;br /&gt;
  echo $space . $xml-&amp;gt;getName() . &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
  dospecial($xml);&lt;br /&gt;
  foreach ($xml-&amp;gt;children() as $node) {&lt;br /&gt;
   nav($node, $space);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$space=&amp;quot;&amp;quot;;&lt;br /&gt;
echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;;&lt;br /&gt;
nav($xml, $space);&lt;br /&gt;
echo &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flush Buffer to Browser ==&lt;br /&gt;
&lt;br /&gt;
httpd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    DocumentRoot /www/admin&lt;br /&gt;
    &amp;lt;Directory /&amp;gt;&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
.htaccess:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php_value output_buffering &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
code.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ob_start();&lt;br /&gt;
&lt;br /&gt;
echo str_pad(&amp;#039;Loading... &amp;#039;,4096).&amp;quot;&amp;lt;br /&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
for($i=0;$i&amp;lt;70;$i++)&lt;br /&gt;
{&lt;br /&gt;
    echo &amp;#039;printing...&amp;lt;br /&amp;gt;&amp;#039;;&lt;br /&gt;
    ob_flush();&lt;br /&gt;
    flush();&lt;br /&gt;
&lt;br /&gt;
    usleep(3000000);&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
References: [http://php.net/manual/en/function.ob-flush.php PHP: ob_flush - Manual]&lt;br /&gt;
&lt;br /&gt;
== Windows IIS Installation ==&lt;br /&gt;
&lt;br /&gt;
# Install IIS&lt;br /&gt;
# Install FastCGI for IIS:&lt;br /&gt;
** http://www.iis.net/download/fastcgi&lt;br /&gt;
# Install PHP (Select IIS FastCGI)&lt;br /&gt;
&lt;br /&gt;
== PHP Lint ==&lt;br /&gt;
&lt;br /&gt;
Syntax check only (lint):&lt;br /&gt;
 php -l script.php&lt;br /&gt;
&lt;br /&gt;
== Minimal HTTP Header Signature ==&lt;br /&gt;
&lt;br /&gt;
/etc/php.ini&lt;br /&gt;
 expose_php = Off&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* Hide Apache ServerSignature/ServerTokens/PHP X-Powered-By - http://www.if-not-true-then-false.com/2009/howto-hide-and-modify-apache-server-information-serversignature-and-servertokens-and-hide-php-version-x-powered-by/&lt;br /&gt;
&lt;br /&gt;
== GD ==&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 yum install php-gd gd&lt;br /&gt;
&lt;br /&gt;
Test:&lt;br /&gt;
 php -r &amp;#039;print_r(gd_info());&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
Error:&lt;br /&gt;
 PHP Warning: POST Content-Length of [N] bytes exceeds the limit of [N] bytes in Unknown on line 0&lt;br /&gt;
&lt;br /&gt;
Solution: (php.ini)&lt;br /&gt;
 memory_limit = 128M&lt;br /&gt;
 post_max_size = 3M&lt;br /&gt;
 upload_max_filesize = 500K&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* PHP Warning: POST Content-Length of n bytes exceeds the limit of 3145728 bytes in Unknown on line 0 - Stack Overflow - http://stackoverflow.com/questions/11738949/php-warning-post-content-length-of-n-bytes-exceeds-the-limit-of-3145728-bytes-i&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Web Development ]]&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
</feed>