-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbasics_mindmap.html
More file actions
42 lines (42 loc) · 44.1 KB
/
basics_mindmap.html
File metadata and controls
42 lines (42 loc) · 44.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.25.0/themes/prism.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.2.0/dist/style.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://cdn.jsdelivr.net/npm/d3@6.7.0"></script><script src="https://cdn.jsdelivr.net/npm/markmap-view@0.2.7"></script><script src="https://cdn.jsdelivr.net/npm/markmap-toolbar@0.2.0/dist/index.umd.min.js"></script><script>(r => {
setTimeout(r);
})(() => {
const {
markmap,
mm
} = window;
const toolbar = new markmap.Toolbar();
toolbar.attach(mm);
const el = toolbar.render();
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
document.body.append(el);
})</script><script>((getMarkmap, getOptions, data) => {
const {
Markmap
} = getMarkmap();
window.mm = Markmap.create('svg#mindmap', getOptions == null ? void 0 : getOptions(), data);
})(() => window.markmap,null,{"t":"root","d":0,"v":"","c":[{"t":"heading","d":1,"p":{"lines":[0,1]},"v":"Tags","c":[{"t":"heading","d":2,"p":{"lines":[1,2]},"v":"#PHP_important"},{"t":"heading","d":2,"p":{"lines":[2,3]},"v":"#PHP_security"},{"t":"heading","d":2,"p":{"lines":[3,4]},"v":"#PHP_basics_end"},{"t":"heading","d":2,"p":{"lines":[4,5]},"v":"#PHP_LFI"}]},{"t":"heading","d":1,"p":{"lines":[7,8]},"v":"PHP","c":[{"t":"heading","d":2,"p":{"lines":[10,11]},"v":"Basics Syntax","c":[{"t":"heading","d":3,"p":{"lines":[11,12]},"v":"<mark style=\"background: #CACFD9A6;\">// Comment</mark> or <mark style=\"background: #CACFD9A6;\"># comment</mark>"},{"t":"heading","d":3,"p":{"lines":[12,13]},"v":"Array","c":[{"t":"heading","d":4,"p":{"lines":[13,14]},"v":"1-Indexed Array","c":[{"t":"heading","d":5,"p":{"lines":[14,15]},"v":"<code>$array_name = array(value, value, ..);</code>"}]},{"t":"heading","d":4,"p":{"lines":[16,17]},"v":"2-Associative Array","c":[{"t":"heading","d":5,"p":{"lines":[17,18]},"v":"<code>$array_name = array('key' ⇒ 'value'); echo $array_name['key'];</code> like the dictionary in python"}]},{"t":"heading","d":4,"p":{"lines":[19,20]},"v":"3-Multidimensional arrays","c":[{"t":"heading","d":5,"p":{"lines":[20,21]},"v":"<code>$arr = array(array('bla', 'bla', 'bla'));</code>2D array"}]}]},{"t":"heading","d":3,"p":{"lines":[23,24]},"v":"Print all the array","c":[{"t":"heading","d":4,"p":{"lines":[24,25]},"v":"1- <code>printr(array)</code>"},{"t":"heading","d":4,"p":{"lines":[25,26]},"v":"2- <code>foreach()</code>","c":[{"t":"heading","d":5,"p":{"lines":[26,27]},"v":"2.1- <code>foreach(Indexed_array)</code>","c":[{"t":"heading","d":6,"p":{"lines":[27,28]},"v":"<code>foreach ($names as $name){echo $name;}</code>"}]},{"t":"heading","d":5,"p":{"lines":[28,29]},"v":"2.2- <code>foreach(associative_array)</code>","c":[{"t":"heading","d":6,"p":{"lines":[29,30]},"v":"<code>foreach($students_and_grades as $student_name => $student_grade){echo "what you want!";}</code>","c":[{"t":"bullet_list","d":7,"p":{"lines":[31,32]},"v":"","c":[{"t":"list_item","d":8,"p":{"lines":[31,32]},"v":"Example"}]},{"t":"fence","d":7,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span>\n\n<span class=\"token comment\">// printing Indexed array print_r() and foreach()</span>\n\n<span class=\"token variable\">$names</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">array</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'bassel'</span><span class=\"token punctuation\">,</span> <span class=\"token string single-quoted-string\">'mohamed'</span><span class=\"token punctuation\">,</span> <span class=\"token string single-quoted-string\">'mahmoud'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// Don't forget the $ before names</span>\n\n <span class=\"token comment\">// First Method using print_r() built-in function (stands for Print human-Readable)</span>\n<span class=\"token function\">print_r</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$names</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// Don't forget the semi colon ;</span>\n \n <span class=\"token comment\">// Second Method using foreach() - like (for name in names) in python</span>\n<span class=\"token keyword\">foreach</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$names</span> <span class=\"token keyword\">as</span> <span class=\"token variable\">$name</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n\n <span class=\"token keyword\">echo</span> <span class=\"token variable\">$name</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\"># -----------------------------------</span>\n\n<span class=\"token comment\">// printing assiciative array print_r() and foreach()</span>\n<span class=\"token variable\">$students_and_grades</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">array</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'ahmed'</span> <span class=\"token operator\">=></span> <span class=\"token string single-quoted-string\">'95'</span><span class=\"token punctuation\">,</span> <span class=\"token string single-quoted-string\">'mostafa'</span> <span class=\"token operator\">=></span> <span class=\"token string single-quoted-string\">'90'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n <span class=\"token comment\">// First Method using print_r() built-in function (stands for Print Array)</span>\n<span class=\"token function\">print_r</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$students_and_grades</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n <span class=\"token comment\">// Second Method using foreach() - like (for name in names) in python</span>\n<span class=\"token keyword\">foreach</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$students_and_grades</span> <span class=\"token keyword\">as</span> <span class=\"token variable\">$student_name</span> <span class=\"token operator\">=></span> <span class=\"token variable\">$student_grade</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n\n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"<span class=\"token interpolation\"><span class=\"token variable\">$student_name</span></span>'s grade is <span class=\"token interpolation\"><span class=\"token variable\">$student_grade</span></span> \\n\"</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]}]}]}]},{"t":"heading","d":3,"p":{"lines":[70,71]},"v":"No value","c":[{"t":"heading","d":4,"p":{"lines":[71,72]},"v":"<code>$name= NULL;</code>"}]},{"t":"heading","d":3,"p":{"lines":[74,75]},"v":"Constant","c":[{"t":"heading","d":4,"p":{"lines":[75,76]},"v":"`define(const, value);"},{"t":"heading","d":4,"p":{"lines":[76,77]},"v":"<code>define('PI',3.14;)</code>"}]},{"t":"heading","d":3,"p":{"lines":[79,80]},"v":"combine strings with <code>.</code> (concatenation)","c":[{"t":"heading","d":4,"p":{"lines":[80,81]},"v":"<code>echo "Hi, " . $name;</code>"}]},{"t":"heading","d":3,"p":{"lines":[83,84]},"v":"pass data using forms","c":[{"t":"heading","d":4,"p":{"lines":[84,85]},"v":"<code>$_GET</code> is a get reserved variable Get pass through the URL"},{"t":"heading","d":4,"p":{"lines":[85,86]},"v":"<code>$_POST</code> pass through the Protocol body, payload"}]},{"t":"heading","d":3,"p":{"lines":[88,89]},"v":"Superglobals : reserved variables","c":[{"t":"heading","d":4,"p":{"lines":[90,91]},"v":"<strong><code>$GLOBALS</code></strong> → <code>$GLOBALS['$_POST', '$_GET']</code>;"},{"t":"heading","d":4,"p":{"lines":[92,93]},"v":"<strong><code>$_POST</code></strong> or ``$GLOBALS['_POST']`"},{"t":"heading","d":4,"p":{"lines":[94,95]},"v":"<strong><code>$_GET</code></strong> or ``$GLOBALS['_GET']`"},{"t":"heading","d":4,"p":{"lines":[96,97]},"v":"<strong><code>$_COOKIE</code></strong> or ``$GLOBALS['_COOKIE']`"},{"t":"heading","d":4,"p":{"lines":[98,99]},"v":"<strong><code>$_SESSION</code></strong> or ``$GLOBALS['_SESSION']`"},{"t":"heading","d":4,"p":{"lines":[100,101]},"v":"<strong><code>$_SERVER</code></strong> or ``$GLOBALS['_SERVER']`"},{"t":"heading","d":4,"p":{"lines":[102,103]},"v":"<strong><code>$_FILES</code></strong> or ``$GLOBALS['_FILES']`"},{"t":"heading","d":4,"p":{"lines":[104,105]},"v":"<strong><code>$_REQUEST</code></strong> or ``$GLOBALS['_REQUEST']`"},{"t":"heading","d":4,"p":{"lines":[106,107]},"v":"<strong><code>$_ENV</code></strong> or ``$GLOBALS['_ENV']`","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token function\">print_r</span><span class=\"token punctuation\">(</span><span class=\"token global\">$GLOBALS</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// to print all the Globals </span>\n</code></pre>\n"}]}]},{"t":"heading","d":3,"p":{"lines":[115,116]},"v":"Math Operations","c":[{"t":"heading","d":4,"p":{"lines":[116,117]},"v":"<code>echo (math_operation);</code> without any additional symbols"}]},{"t":"heading","d":3,"p":{"lines":[119,120]},"v":"Comparison operators","c":[{"t":"heading","d":4,"p":{"lines":[120,121]},"v":"<code>==</code> Equal"},{"t":"heading","d":4,"p":{"lines":[121,122]},"v":"<code>===</code> identical (equal and the same Data Type)"},{"t":"heading","d":4,"p":{"lines":[122,123]},"v":"<code>!=</code> Not equal or <code><></code>"},{"t":"heading","d":4,"p":{"lines":[123,124]},"v":"<code>!==</code> Not identical"},{"t":"heading","d":4,"p":{"lines":[124,125]},"v":"<code>a <=> b</code> spaceship","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"> <span class=\"token comment\">//Comparing Integers</span>\n\n <span class=\"token keyword\">echo</span> <span class=\"token number\">1</span> <span class=\"token operator\"><=></span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output 0</span>\n <span class=\"token keyword\">echo</span> <span class=\"token number\">3</span> <span class=\"token operator\"><=></span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output -1</span>\n <span class=\"token keyword\">echo</span> <span class=\"token number\">4</span> <span class=\"token operator\"><=></span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output 1</span>\n\n <span class=\"token comment\">//String Comparison</span>\n\n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"x\"</span> <span class=\"token operator\"><=></span> <span class=\"token string double-quoted-string\">\"x\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output 0</span>\n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"x\"</span> <span class=\"token operator\"><=></span> <span class=\"token string double-quoted-string\">\"y\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output -1</span>\n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"y\"</span> <span class=\"token operator\"><=></span> <span class=\"token string double-quoted-string\">\"x\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//output 1</span>\n</code></pre>\n"}]}]},{"t":"heading","d":3,"p":{"lines":[140,141]},"v":"Logical Operators","c":[{"t":"heading","d":4,"p":{"lines":[141,142]},"v":"<code>and</code> , <code>&&</code> ⇒ AND"},{"t":"heading","d":4,"p":{"lines":[142,143]},"v":"<code>or</code> , <code>||</code> ⇒ OR"},{"t":"heading","d":4,"p":{"lines":[143,144]},"v":"<code>!</code> ⇒ NOT"},{"t":"heading","d":4,"p":{"lines":[144,145]},"v":"<code>xor</code> ⇒ XOR"}]},{"t":"heading","d":3,"p":{"lines":[147,148]},"v":"If condition","c":[{"t":"heading","d":4,"p":{"lines":[148,149]},"v":"1-Normal if","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span> \n<span class=\"token variable\">$t</span> <span class=\"token operator\">=</span> <span class=\"token function\">date</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"H\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n \n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$t</span> <span class=\"token operator\"><</span> <span class=\"token string double-quoted-string\">\"20\"</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"Have a good day!\"</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"Have a good night!\"</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> \n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[160,161]},"v":"2-<code>if-endif</code>","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>condition<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> <span class=\"token keyword\">do</span> <span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">and</span> this <span class=\"token operator\">...</span><span class=\"token operator\">.</span><span class=\"token operator\">.</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">elseif</span><span class=\"token punctuation\">:</span><span class=\"token operator\">...</span>\n<span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span><span class=\"token operator\">...</span>\n<span class=\"token keyword\">endif</span> <span class=\"token punctuation\">;</span>\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[168,169]},"v":"3-inline-if","c":[{"t":"heading","d":5,"p":{"lines":[169,170]},"v":"<code>$variable = (condition) ? "value" : "another value" ;</code>"}]}]},{"t":"heading","d":3,"p":{"lines":[172,173]},"v":"the for loop is similar to C and C++","c":[{"t":"heading","d":4,"p":{"lines":[173,174]},"v":"<code>for ($num = 0; $num < 100 ; $num++){echo $num}</code>"},{"t":"heading","d":4,"p":{"lines":[174,175]},"v":"<code>for-endfor</code>","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span> \n<span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$i</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> <span class=\"token variable\">$i</span> <span class=\"token operator\"><</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span> <span class=\"token variable\">$i</span> <span class=\"token operator\">+=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span> \n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"<span class=\"token interpolation\"><span class=\"token variable\">$i</span></span> <br>\"</span><span class=\"token punctuation\">;</span> \n<span class=\"token keyword\">endfor</span><span class=\"token punctuation\">;</span> \n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]}]},{"t":"heading","d":3,"p":{"lines":[184,185]},"v":"While loop is similar to C and C++","c":[{"t":"heading","d":4,"p":{"lines":[185,186]},"v":"<code>while ($i > 100){echo $i; $i--;}</code>"}]},{"t":"heading","d":3,"p":{"lines":[188,189]},"v":"do-while is similar to C and C++, don't forget the ; after the while","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span> \n<span class=\"token variable\">$x</span> <span class=\"token operator\">=</span> <span class=\"token number\">6</span><span class=\"token punctuation\">;</span> \n<span class=\"token keyword\">do</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"The number is: <span class=\"token interpolation\"><span class=\"token variable\">$x</span></span> <br>\"</span><span class=\"token punctuation\">;</span> \n <span class=\"token variable\">$x</span><span class=\"token operator\">++</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$x</span> <span class=\"token operator\"><=</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[200,201]},"v":"Functions","c":[{"t":"heading","d":4,"p":{"lines":[201,202]},"v":"basic syntax:","c":[{"t":"heading","d":5,"p":{"lines":[202,203]},"v":"<code>function func_name($param1, param2=5)</code> // param2 has default value 5"}]},{"t":"heading","d":4,"p":{"lines":[204,205]},"v":"Value parameter and Reference parameter","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">function</span> <span class=\"token function-definition function\">changeMe</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$change</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n <span class=\"token variable\">$change</span><span class=\"token operator\">=</span><span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token variable\">$change</span> <span class=\"token operator\">=</span> <span class=\"token number\">5</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">changeMe</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$change</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">echo</span> <span class=\"token variable\">$change</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// The output : 5 because it is a value parameter not a reference parameter </span>\n\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[216,217]},"v":"Reference parameter","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$OutTheFunction</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">function</span> <span class=\"token function-definition function\">changeMe</span><span class=\"token punctuation\">(</span><span class=\"token operator\">&</span><span class=\"token variable\">$change</span><span class=\"token punctuation\">)</span><span class=\"token comment\">//it's a reference parameter </span>\n<span class=\"token punctuation\">{</span>\n <span class=\"token variable\">$change</span><span class=\"token operator\">=</span><span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n\n <span class=\"token keyword\">global</span> <span class=\"token variable\">$OutTheFunction</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token variable\">$change</span> <span class=\"token operator\">=</span> <span class=\"token number\">5</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">changeMe</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$change</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">echo</span> <span class=\"token variable\">$change</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//the output : 10</span>\n\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[231,232]},"v":"variable number of parameters","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">function</span> <span class=\"token function-definition function\">getMe</span><span class=\"token punctuation\">(</span><span class=\"token operator\">...</span>nums<span class=\"token punctuation\">)</span><span class=\"token comment\">//it will allow any value you put as a parameter and store it as an array</span>\n<span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span>\n<span class=\"token function\">getMe</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">34</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[239,240]},"v":"return multiple values","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">function</span> <span class=\"token function-definition function\">doMath</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$x</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$y</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> <span class=\"token keyword\">array</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$x</span> <span class=\"token operator\">+</span> <span class=\"token variable\">$y</span><span class=\"token punctuation\">,</span> kdsf<span class=\"token punctuation\">,</span> dksfds<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token keyword\">list</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$sum</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$ksd</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=</span> <span class=\"token function\">doMath</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n"}]},{"t":"heading","d":4,"p":{"lines":[248,249]},"v":"double list","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">function</span> <span class=\"token function-definition function\">doubleMe</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$x</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">{</span>\n <span class=\"token keyword\">return</span> x <span class=\"token operator\">*</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token variable\">$list</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$double_list</span> <span class=\"token operator\">=</span> <span class=\"token function\">array_map</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'doubleMe'</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$list</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//array_map(function name, input source)</span>\n<span class=\"token function\">print_r</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$double_list</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//print human readable</span>\n<span class=\"token comment\">##The array_map() function sends each value of an array to a user-made function, and returns an array with new values, given by the user-made function. Tip: You can assign one array to the function, or as many as you like</span>\n</code></pre>\n"}]}]},{"t":"heading","d":3,"p":{"lines":[261,262]},"v":"exception handling","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token comment\">//create function with an exception </span>\n<span class=\"token keyword\">function</span> <span class=\"token function-definition function\">checkNum</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$number</span> <span class=\"token operator\">></span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Exception</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"Value must be 1 or below\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n <span class=\"token punctuation\">}</span> \n <span class=\"token keyword\">return</span> <span class=\"token constant boolean\">true</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> \n \n<span class=\"token comment\">//trigger exception in a \"try\" block </span>\n<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span> \n <span class=\"token function\">checkNum</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n <span class=\"token comment\">//If the exception is thrown, this text will not be shown </span>\n <span class=\"token keyword\">echo</span> <span class=\"token string single-quoted-string\">'If you see this, the number is 1 or below'</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> \n \n<span class=\"token comment\">//catch exception </span>\n<span class=\"token keyword\">catch</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Exception</span> <span class=\"token variable\">$e</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> \n <span class=\"token keyword\">echo</span> <span class=\"token string single-quoted-string\">'Message: '</span> <span class=\"token operator\">.</span><span class=\"token variable\">$e</span> <span class=\"token operator\">-></span> <span class=\"token function\">getMessage</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> \n\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[286,287]},"v":"PHP scripts inside HTML page","c":[{"t":"fence","d":4,"v":"<pre class=\"language-html\"><code class=\"language-html\"><span class=\"token prolog\"><? \"This is a text printed with a short echo you can use it in HTML not in PHP script \"?></span>\n<span class=\"token prolog\"><? \"you can use 'single quotes ' in double quotes, or I can reverse it \"?></span>\n<span class=\"token prolog\"><? \" you can use \\\" backslash with double quotes to put double quotes in double quotes\\\"?></span>\n</code></pre>\n"},{"t":"bullet_list","d":4,"p":{"lines":[292,293]},"v":"","c":[{"t":"list_item","d":5,"p":{"lines":[292,293]},"v":"Hint: it didn't work with me"}]}]},{"t":"heading","d":3,"p":{"lines":[295,296]},"v":"<code>$bool = true;</code> neither True nor TRUE"},{"t":"heading","d":3,"p":{"lines":[298,299]},"v":"Working with files #PHP_important","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span>\n <span class=\"token variable\">$fp</span> <span class=\"token operator\">=</span> <span class=\"token function\">fopen</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'jar.txt'</span><span class=\"token punctuation\">,</span> <span class=\"token string single-quoted-string\">'a'</span><span class=\"token comment\">/*append*/</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// fopen(FileName, Mode)</span>\n \n <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$fp</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$ip</span><span class=\"token operator\">.</span><span class=\"token string single-quoted-string\">' '</span><span class=\"token operator\">.</span><span class=\"token variable\">$browser</span><span class=\"token operator\">.</span><span class=\"token string double-quoted-string\">\"\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\">//fwrite(file, string)</span>\n <span class=\"token function\">fwrite</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$fp</span><span class=\"token punctuation\">,</span> <span class=\"token function\">urldecode</span><span class=\"token punctuation\">(</span><span class=\"token global\">$_SERVER</span><span class=\"token punctuation\">[</span><span class=\"token string single-quoted-string\">'QUERY_STRING'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token operator\">.</span> <span class=\"token string double-quoted-string\">\"\\n\\n\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n <span class=\"token function\">fclose</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$fp</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[310,311]},"v":"Concatenation assignment","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$text</span> <span class=\"token operator\">=</span> <span class=\"token string double-quoted-string\">\"This is a \"</span><span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$text</span> <span class=\"token operator\">.=</span><span class=\"token string double-quoted-string\">\"text \"</span> <span class=\"token punctuation\">;</span> \n<span class=\"token keyword\">echo</span> <span class=\"token variable\">$text</span> <span class=\"token punctuation\">;</span>` This is a text\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[318,319]},"v":"Strings","c":[{"t":"heading","d":4,"p":{"lines":[319,320]},"v":"convert a string to array with spaces","c":[{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token variable\">$let_str</span> <span class=\"token operator\">=</span> <span class=\"token string double-quoted-string\">\"a b c d \"</span> <span class=\"token punctuation\">;</span>\n<span class=\"token variable\">$let_arr</span> <span class=\"token operator\">=</span> <span class=\"token function\">explode</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">' '</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$let_str</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// convert string to array </span>\n<span class=\"token keyword\">foreach</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$let_arr</span> <span class=\"token keyword\">as</span> <span class=\"token variable\">$l</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\n <span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"letter: %s<br>\"</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$l</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># print each value in the array </span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token variable\">$let_str_2</span> <span class=\"token operator\">=</span> <span class=\"token function\">implode</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">' '</span><span class=\"token punctuation\">,</span> <span class=\"token variable\">$let_arr</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// convert array to string</span>\n<span class=\"token keyword\">echo</span> <span class=\"token string double-quoted-string\">\"string : <span class=\"token interpolation\"><span class=\"token variable\">$let_str_2</span></span><br>\"</span><span class=\"token punctuation\">;</span>\n</code></pre>\n"},{"t":"fence","d":5,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"%placeholder\"</span><span class=\"token punctuation\">,</span> variable_name<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">strlen</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-casting\">string</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># string length</span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">ltrim</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-casting\">string</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># will trim the white spaces on the left</span>\nrtrim<span class=\"token punctuation\">,</span> trim\nvariable <span class=\"token operator\">=</span> <span class=\"token function\">trim</span><span class=\"token punctuation\">(</span>variable<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">strtoupper</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-casting\">string</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">strtolower</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-casting\">string</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">ucfirst</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-casting\">string</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># uppercase first chracter -> convert the first character to uppercase </span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">substr</span><span class=\"token punctuation\">(</span><span class=\"token keyword type-declaration\">string</span><span class=\"token punctuation\">,</span> start<span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// grap the first th characters </span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">strcmp</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"string\"</span><span class=\"token punctuation\">,</span> <span class=\"token string double-quoted-string\">\"string\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># string compare </span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">strpos</span><span class=\"token punctuation\">(</span>variable<span class=\"token punctuation\">,</span> <span class=\"token string double-quoted-string\">\"search for ..\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">#string position </span>\n<span class=\"token function\">printf</span><span class=\"token punctuation\">(</span><span class=\"token function\">str_replace</span><span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"string1\"</span><span class=\"token punctuation\">,</span> <span class=\"token string double-quoted-string\">\"string2\"</span><span class=\"token punctuation\">,</span> variable<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># string replace </span>\n</code></pre>\n"},{"t":"bullet_list","d":5,"p":{"lines":[345,346]},"v":"","c":[{"t":"list_item","d":6,"p":{"lines":[345,346]},"v":"Hint : you can type <code>echo "it is $variable";</code> or concatenation using <strong><code>.</code></strong> (you can't do it inside single quotes)"}]}]}]},{"t":"heading","d":3,"p":{"lines":[353,354]},"v":"HTML special chars #PHP_security","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"> \n\n<span class=\"token php language-php\"><span class=\"token delimiter important\"><?php</span>\n\n<span class=\"token variable\">$html</span> <span class=\"token operator\">=</span> <span class=\"token string double-quoted-string\">\"<a href='#'>sample</a> <br>\"</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">echo</span> <span class=\"token variable\">$html</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// XSS vulnerable</span>\n<span class=\"token keyword\">echo</span> <span class=\"token function\">htmlspecialchars</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$html</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// not vulnerable (you can't) XSS Mitigation</span>\n<span class=\"token keyword\">echo</span> <span class=\"token function\">strip_tags</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$html</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token string double-quoted-string\">\"<a>\"</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// removes <a></span>\n\n<span class=\"token delimiter important\">?></span></span>\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[368,369]},"v":"Redirection #PHP_important","c":[{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token function\">header</span><span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'Location: /php-crash/extras/dashboard.php'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</code></pre>\n"}]},{"t":"heading","d":3,"p":{"lines":[374,375]},"v":"Including Files #PHP_important #PHP_security #PHP_LFI","c":[{"t":"bullet_list","d":4,"p":{"lines":[375,376]},"v":"","c":[{"t":"list_item","d":5,"p":{"lines":[375,376]},"v":"You should filter any included files to avoid LFI(Local File Inclusion) Vulnerability"}]},{"t":"fence","d":4,"v":"<pre class=\"language-php\"><code class=\"language-php\"><span class=\"token keyword\">include</span> <span class=\"token string single-quoted-string\">'file'</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">or</span> <span class=\"token keyword\">include</span> <span class=\"token punctuation\">(</span><span class=\"token string double-quoted-string\">\"\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\"># with () include('FileName in the same dir or PATH/FileName')</span>\n<span class=\"token keyword\">include_once</span> <span class=\"token string double-quoted-string\">\"FileName \"</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">require</span> <span class=\"token string double-quoted-string\">\"file\"</span><span class=\"token punctuation\">;</span> <span class=\"token keyword\">or</span> <span class=\"token keyword\">require</span> <span class=\"token punctuation\">(</span><span class=\"token string single-quoted-string\">'file'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span><span class=\"token comment\"># if file doesn't exist include will work with an Alert and require won't work </span>\n</code></pre>\n"}]}]}]},{"t":"heading","d":1,"p":{"lines":[384,385]},"v":"Woohoo You have finished 😃"},{"t":"heading","d":1,"p":{"lines":[385,386]},"v":"flag{PHP_N1N94_H4CK3R} 💪"}],"p":{}})</script>
</body>
</html>