Файловый менеджер - Редактировать - /home/skymarketplace/public_html/uploads/share.zip
Назад
PK GI�Z(��$M $M fpm/status.htmlnu �[��� <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- (c) 2011 Jerome Loyet The PHP License, version 3.01 This is sample real-time status page for FPM. You can change it to better fit your needs. --> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <style type="text/css"> body {background-color: #ffffff; color: #000000;} body, td, th, h1, h2 {font-family: sans-serif;} pre {margin: 0px; font-family: monospace;} a:link {color: #000099; text-decoration: none; background-color: #ffffff;} a:hover {text-decoration: underline;} table {border-collapse: collapse;} .center {text-align: center;} .center table { margin-left: auto; margin-right: auto; text-align: left;} .center th { text-align: center !important; } td, th { border: 1px solid #000000; font-size: 75%; vertical-align: baseline;} h1 {font-size: 150%;} h2 {font-size: 125%;} .p {text-align: left;} .e {background-color: #ccccff; font-weight: bold; color: #000000;} .h {background-color: #9999cc; font-weight: bold; color: #000000;} .v {background-color: #cccccc; color: #000000;} .w {background-color: #ccccff; color: #000000;} .h th { cursor: pointer; } img {float: right; border: 0px;} hr {width: 600px; background-color: #cccccc; border: 0px; height: 1px; color: #000000;} </style> <title>PHP-FPM status page</title> <meta name="ROBOTS" content="NOINDEX,NOFOLLOW,NOARCHIVE" /></head> <body> <div class="center"> <table border="0" cellpadding="3" width="95%"> <tr class="h"> <td> <a href="http://www.php.net/"><img border="0" src="data:image/png;base64,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" alt="PHP Logo" /></a><h1 class="p">PHP-FPM real-time status page</h1> </td> </tr> </table> <br /> <table border="0" cellpadding="3" width="95%"> <tr><td class="e">Status URL</td><td class="v"><input type="text" id="url" size="45" /></td></tr> <tr><td class="e">Ajax status</td><td class="v" id="status"></td></tr> <tr><td class="e">Refresh Rate</td><td class="v"><input type="text" id="rate" value="1" /></td></tr> <tr> <td class="e">Actions</td> <td class="v"> <button onclick="javascript:refresh();">Manual Refresh</button> <button id="play" onclick="javascript:playpause();">Play</button> </td> </tr> </table> <h1>Pool Status</h1> <table border="0" cellpadding="3" width="95%" id="short"> <tr style="display: none;"><td> </td></tr> </table> <h1>Active Processes status</h1> <table border="0" cellpadding="3" width="95%" id="active"> <tr class="h"><th>PID↓</th><th>Start Time</th><th>Start Since</th><th>Requests Served</th><th>Request Duration</th><th>Request method</th><th>Request URI</th><th>Content Length</th><th>User</th><th>Script</th></tr> </table> <h1>Idle Processes status</h1> <table border="0" cellpadding="3" width="95%" id="idle"> <tr class="h"><th>PID↓</th><th>Start Time</th><th>Start Since</th><th>Requests Served</th><th>Request Duration</th><th>Request method</th><th>Request URI</th><th>Content Length</th><th>User</th><th>Script</th><th>Last Request %CPU</th><th>Last Request Memory</th></tr> </table> </div> <p> <a href="http://validator.w3.org/check?uri=referer"> <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /> </a> </p> <script type="text/javascript"> <!-- var xhr_object = null; var doc_url = document.getElementById("url"); var doc_rate = document.getElementById("rate"); var doc_status = document.getElementById("status"); var doc_play = document.getElementById("play"); var doc_short = document.getElementById("short"); var doc_active = document.getElementById("active"); var doc_idle = document.getElementById("idle"); var rate = 0; var play=0; var delay = 1000; var order_active_index = 0; var order_active_reverse = 0; var order_idle_index = 0; var order_idle_reverse = 0; var sort_index; var sort_order; doc_url.value = location.protocol + '//' + location.host + "/status?json&full"; ths = document.getElementsByTagName("th"); for (var i=0; i<ths.length; i++) { var th = ths[i]; if (th.parentNode.className == "h") { th.onclick = function() { order(this); return false; }; } } xhr_object = create_ajax(); function create_ajax() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } var names = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for(var i in names) { try { return new ActiveXObject(names[i]); } catch(e){} } alert("Browser not compatible ..."); } function order(cell) { var table; if (cell.constructor != HTMLTableCellElement && cell.constructor != HTMLTableHeaderCellElement) { return; } table = cell.parentNode.parentNode.parentNode; if (table == doc_active) { if (order_active_index == cell.cellIndex) { if (order_active_reverse == 0) { cell.innerHTML = cell.innerHTML.replace(/.$/, "↑"); order_active_reverse = 1; } else { cell.innerHTML = cell.innerHTML.replace(/.$/, "↓"); order_active_reverse = 0; } } else { var c = doc_active.rows[0].cells[order_active_index]; c.innerHTML = c.innerHTML.replace(/.$/, ""); cell.innerHTML = cell.innerHTML.replace(/$/, order_active_reverse == 0 ? "↓" : "↑"); order_active_index = cell.cellIndex; } reorder(table, order_active_index, order_active_reverse); return; } if (table == doc_idle) { if (order_idle_index == cell.cellIndex) { if (order_idle_reverse == 0) { cell.innerHTML = cell.innerHTML.replace(/.$/, "↑"); order_idle_reverse = 1; } else { cell.innerHTML = cell.innerHTML.replace(/.$/, "↓"); order_idle_reverse = 0; } } else { var c = doc_idle.rows[0].cells[order_idle_index]; c.innerHTML = c.innerHTML.replace(/.$/, ""); cell.innerHTML = cell.innerHTML.replace(/$/, order_idle_reverse == 0 ? "↓" : "↑"); order_idle_index = cell.cellIndex; } reorder(table, order_idle_index, order_idle_reverse); return; } } function reorder(table, index, order) { var rows = []; while (table.rows.length > 1) { rows.push(table.rows[1]); table.deleteRow(1); } sort_index = index; sort_order = order; rows.sort(sort_table); for (var i in rows) { table.appendChild(rows[i]); } var odd = 1; for (var i=1; i<table.rows.length; i++) { table.rows[i].className = odd++ % 2 == 0 ? "v" : "w"; } return; } function sort_table(a, b) { if (a.cells[0].tagName == "TH") return -1; if (b.cells[0].tagName == "TH") return 1; if (a.cells[sort_index].__search_t == 0) { /* integer */ if (!sort_order) return a.cells[sort_index].__search_v - b.cells[sort_index].__search_v; return b.cells[sort_index].__search_v - a.cells[sort_index].__search_v;; } /* string */ if (!sort_order) return a.cells[sort_index].__search_v.localeCompare(b.cells[sort_index].__search_v); else return b.cells[sort_index].__search_v.localeCompare(a.cells[sort_index].__search_v); } function playpause() { rate = 0; if (play) { play = 0; doc_play.innerHTML = "Play"; doc_rate.disabled = false; } else { delay = parseInt(doc_rate.value); if (!delay || delay < 1) { doc_status.innerHTML = "Not valid 'refresh' value"; return; } play = 1; doc_rate.disabled = true; doc_play.innerHTML = "Pause"; setTimeout("callback()", delay * 1000); } } function refresh() { if (xhr_object == null) return; if (xhr_object.readyState > 0 && xhr_object.readyState < 4) { return; /* request is running */ } xhr_object.open("GET", doc_url.value, true); xhr_object.onreadystatechange = function() { switch(xhr_object.readyState) { case 0: doc_status.innerHTML = "uninitialized"; break; case 1: doc_status.innerHTML = "loading ..."; break; case 2: doc_status.innerHTML = "loaded"; break; case 3: doc_status.innerHTML = "interactive"; break; case 4: doc_status.innerHTML = "complete"; if (xhr_object.status == 200) { fpm_status(xhr_object.responseText); } else { doc_status.innerHTML = "Error " + xhr_object.status; } break; } } xhr_object.send(); } function callback() { if (!play) return; refresh(); setTimeout("callback()", delay * 1000); } function fpm_status(txt) { var json = null; while (doc_short.rows.length > 0) { doc_short.deleteRow(0); } while (doc_active.rows.length > 1) { doc_active.deleteRow(1); } while (doc_idle.rows.length > 1) { doc_idle.deleteRow(1); } try { json = JSON.parse(txt); } catch (e) { doc_status.innerHTML = "Error while parsing json: '" + e + "': <br /><pre>" + txt + "</pre>"; return; } for (var key in json) { if (key == "processes") continue; if (key == "state") continue; var row = doc_short.insertRow(doc_short.rows.length); var value = json[key]; if (key == "start time") { value = new Date(value * 1000).toLocaleString(); } if (key == "start since") { value = time_s(value); } var cell = row.insertCell(row.cells.length); cell.className = "e"; cell.innerHTML = key; cell = row.insertCell(row.cells.length); cell.className = "v"; cell.innerHTML = value; } if (json.processes) { process_full(json.processes, doc_active, "Idle", 0, 0); reorder(doc_active, order_active_index, order_active_reverse); process_full(json.processes, doc_idle, "Idle", 1, 1); reorder(doc_idle, order_idle_index, order_idle_reverse); } } function process_full(processes, table, state, equal, cpumem) { var odd = 1; for (var i in processes) { var proc = processes[i]; if ((equal && proc.state == state) || (!equal && proc.state != state)) { var c = odd++ % 2 == 0 ? "v" : "w"; var row = table.insertRow(-1); row.className = c; row.insertCell(-1).innerHTML = proc.pid; row.cells[row.cells.length - 1].__search_v = proc.pid; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = date(proc['start time'] * 1000);; row.cells[row.cells.length - 1].__search_v = proc['start time']; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = time_s(proc['start since']); row.cells[row.cells.length - 1].__search_v = proc['start since']; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = proc.requests; row.cells[row.cells.length - 1].__search_v = proc.requests; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = time_u(proc['request duration']); row.cells[row.cells.length - 1].__search_v = proc['request duration']; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = proc['request method']; row.cells[row.cells.length - 1].__search_v = proc['request method']; row.cells[row.cells.length - 1].__search_t = 1; row.insertCell(-1).innerHTML = proc['request uri']; row.cells[row.cells.length - 1].__search_v = proc['request uri']; row.cells[row.cells.length - 1].__search_t = 1; row.insertCell(-1).innerHTML = proc['content length']; row.cells[row.cells.length - 1].__search_v = proc['content length']; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = proc.user; row.cells[row.cells.length - 1].__search_v = proc.user; row.cells[row.cells.length - 1].__search_t = 1; row.insertCell(-1).innerHTML = proc.script; row.cells[row.cells.length - 1].__search_v = proc.script; row.cells[row.cells.length - 1].__search_t = 1; if (cpumem) { row.insertCell(-1).innerHTML = cpu(proc['last request cpu']); row.cells[row.cells.length - 1].__search_v = proc['last request cpu']; row.cells[row.cells.length - 1].__search_t = 0; row.insertCell(-1).innerHTML = memory(proc['last request memory']); row.cells[row.cells.length - 1].__search_v = proc['last request memory']; row.cells[row.cells.length - 1].__search_t = 0; } } } } function date(d) { var t = new Date(d); var r = ""; r += (t.getDate() < 10 ? '0' : '') + t.getDate(); r += '/'; r += (t.getMonth() + 1 < 10 ? '0' : '') + (t.getMonth() + 1); r += '/'; r += t.getFullYear(); r += ' '; r += (t.getHours() < 10 ? '0' : '') + t.getHours(); r += ':'; r += (t.getMinutes() < 10 ? '0' : '') + t.getMinutes(); r += ':'; r += (t.getSeconds() < 10 ? '0' : '') + t.getSeconds(); return r; } function cpu(c) { if (c == 0) return 0; return c + "%"; } function memory(mem) { if (mem == 0) return 0; if (mem < 1024) { return mem + "B"; } if (mem < 1024 * 1024) { return mem/1024 + "KB"; } if (mem < 1024*1024*1024) { return mem/1024/1024 + "MB"; } } function time_s(t) { var r = ""; if (t < 60) { return t + 's'; } r = (t % 60) + 's'; t = Math.floor(t / 60); if (t < 60) { return t + 'm ' + r; } r = (t % 60) + 'm ' + r; t = Math.floor(t/60); if (t < 24) { return t + 'h ' + r; } return Math.floor(t/24) + 'd ' + (t % 24) + 'h ' + t; } function time_u(t) { var r = ""; if (t < 1000) { return t + 'µs' } r = (t % 1000) + 'µs'; t = Math.floor(t / 1000); if (t < 1000) { return t + 'ms ' + r; } return time_s(Math.floor(t/1000)) + ' ' + (t%1000) + 'ms ' + r; } --> </script> </body> </html> PK GI�Z���6#* #* man/man1/phar.1nu �[��� .TH PHAR 1 "2021" "The PHP Group" "User Commands" .SH NAME phar, phar.phar \- PHAR (PHP archive) command line tool .SH SYNOPSIS .B phar <command> [options] ... .LP .SH DESCRIPTION The \fBPHAR\fP file format provides a way to put entire PHP applications into a single file called a "phar" (PHP Archive) for easy distribution and installation. .P With the \fBphar\fP command you can create, update or extract PHP archives. .P Commands: add compress delete extract help help-list info list meta-del meta-get meta-set pack sign stub-get stub-set tree version .SH add command Add entries to a PHAR package. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .TP .PD .B ... Any number of input files and directories. If -i is in use then ONLY files and matching the given regular expression are being packed. If -x is given then files matching that regular expression are NOT being packed. .P Optional arguments: .TP 15 .PD .B \-a \fIalias\fP Provide an \fIalias\fP name for the phar file. .TP .PD .B \-c \fIalgo\fP Compression algorithm (see .SM .B COMPRESSION ) .TP .PD .B \-i \fIregex\fP Specifies a regular expression for input files. .TP .PD .B \-l \fIlevel\fP Number of preceding subdirectories to strip from file entries .TP .PD .B \-x \fIregex\fP Regular expression for input files to exclude. .SH compress command Compress or uncompress all files or a selected entry. .P Required arguments: .TP 15 .PD .B \-c \fIalgo\fP Compression algorithm (see .SM .B COMPRESSION ) .TP .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -e \fIentry\fP Name of \fIentry\fP to work on (must include PHAR internal directory name if any). .SH delete command Delete entry from a PHAR archive .P Required arguments: .TP 15 .PD .B \-e \fIentry\fP Name of \fIentry\fP to work on (must include PHAR internal directory name if any). .TP .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .SH extract command Extract a PHAR package to a directory. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -i \fIregex\fP Specifies a regular expression for input files. .TP .PD .B -x \fIregex\fP Regular expression for input files to exclude. .TP .PD .B ... Directory to extract to (defaults to '.'). .SH help command This help or help for a selected command. .P Optional arguments: .TP 15 .PD .B ... Optional command to retrieve help for. .SH help-list command Lists available commands. .SH info command Get information about a PHAR package. .P By using -k it is possible to return a single value. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -k \fIindex\fP Subscription \fIindex\fP to work on. .SH list command List contents of a PHAR archive. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -i \fIregex\fP Specifies a regular expression for input files. .TP .PD .B -x \fIregex\fP Regular expression for input files to exclude. .SH meta-del command Delete meta information of a PHAR entry or a PHAR package. .P If -k is given then the metadata is expected to be an array and the given index is being deleted. .P If something was deleted the return value is 0 otherwise it is 1. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -e \fIentry\fP Name of \fIentry\fP to work on (must include PHAR internal directory name if any). .TP .PD .B -k \fIindex\fP Subscription \fIindex\fP to work on. .SH meta-get command Get meta information of a PHAR entry or a PHAR package in serialized from. If no output file is specified for meta data then stdout is being used. You can also specify a particular index using -k. In that case the metadata is expected to be an array and the value of the given index is returned using echo rather than using serialize. If that index does not exist or no meta data is present then the return value is 1. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B -e \fIentry\fP Name of \fIentry\fP to work on (must include PHAR internal directory name if any). .TP .PD .B -k \fIindex\fP Subscription \fIindex\fP to work on. .SH meta-set command Set meta data of a PHAR entry or a PHAR package using serialized input. If no input file is specified for meta data then stdin is being used. You can also specify a particular index using -k. In that case the metadata is expected to be an array and the value of the given index is being set. If the metadata is not present or empty a new array will be created. If the metadata is present and a flat value then the return value is 1. Also using -k the input is been taken directly rather then being serialized. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .TP .PD .B -m \fImeta\fP Meta data to store with entry (serialized php data). .P Optional arguments: .TP 15 .PD .B -e \fIentry\fP Name of \fIentry\fP to work on (must include PHAR internal directory name if any). .TP .PD .B -k \fIindex\fP Subscription \fIindex\fP to work on. .SH pack command Pack files into a PHAR archive. .P When using -s <stub>, then the stub file is being excluded from the list of input files/dirs.To create an archive that contains PEAR class PHP_Archive then point -p argument to PHP/Archive.php. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .TP .PD .B ... Any number of input files and directories. If -i is in use then ONLY files and matching the given regular expression are being packed. If -x is given then files matching that regular expression are NOT being packed. .P Optional arguments: .TP 15 .PD .B \-a \fIalias\fP Provide an \fIalias\fP name for the phar file. .TP .PD .B \-b \fIbang\fP Hash-bang line to start the archive (e.g. #!/usr/bin/php). The hash mark itself '#!' and the newline character are optional. .TP .PD .B \-c \fIalgo\fP Compression algorithm (see .SM .B COMPRESSION ) .TP .PD .B \-h \fIhash\fP Selects the \fIhash\fP algorithm (see .SM .B HASH ) .TP .PD .B \-i \fIregex\fP Specifies a regular expression for input files. .TP .PD .B \-l \fIlevel\fP Number of preceding subdirectories to strip from file entries .TP .PD .B \-p \fIloader\fP Location of PHP_Archive class file (pear list-files PHP_Archive).You can use '0' or '1' to locate it automatically using the mentioned pear command. When using '0' the command does not error out when the class file cannot be located. This switch also adds some code around the stub so that class PHP_Archive gets registered as phar:// stream wrapper if necessary. And finally this switch will add the file phar.inc from this package and load it to ensure class Phar is present. .TP .PD .B \-s \fIstub\fP Select the \fIstub\fP file. .TP .PD .B \-x \fIregex\fP Regular expression for input files to exclude. .TP .PD .B \-y \fIkey\fP Private \fIkey\fP for OpenSSL signing. .SH sign command Set signature hash algorithm. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .TP .PD .B \-h \fIhash\fP Selects the \fIhash\fP algorithm (see .SM .B HASH ) .P Optional arguments: .TP 15 .PD .B \-y \fIkey\fP Private \fIkey\fP for OpenSSL signing. .SH stub-get command Get the stub of a PHAR file. If no output file is specified as stub then stdout is being used. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B \-s \fIstub\fP Select the \fIstub\fP file. .SH stub-set command Set the stub of a PHAR file. If no input file is specified as stub then stdin is being used. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B \-b \fIbang\fP Hash-bang line to start the archive (e.g. #!/usr/bin/php). The hash mark itself '#!' and the newline character are optional. .TP .PD .B \-p \fIloader\fP Location of PHP_Archive class file (pear list-files PHP_Archive).You can use '0' or '1' to locate it automatically using the mentioned pear command. When using '0' the command does not error out when the class file cannot be located. This switch also adds some code around the stub so that class PHP_Archive gets registered as phar:// stream wrapper if necessary. And finally this switch will add the file phar.inc from this package and load it to ensure class Phar is present. .TP .PD .B \-s \fIstub\fP Select the \fIstub\fP file. .SH tree command Get a directory tree for a PHAR archive. .P Required arguments: .TP 15 .PD .B -f \fIfile\fP Specifies the phar \fIfile\fP to work on. .P Optional arguments: .TP 15 .PD .B \-i \fIregex\fP Specifies a regular expression for input files. .TP .PD .B \-x \fIregex\fP Regular expression for input files to exclude. .SH version command Get information about the PHAR environment and the tool version. .SH COMPRESSION Algorithms: .TP 15 .PD .B 0 No compression .TP .PD .B none No compression .TP .PD .B auto Automatically select compression algorithm .TP .PD .B gz GZip compression .TP .PD .B gzip GZip compression .TP .PD .B bz2 BZip2 compression .TP .PD .B bzip2 BZip2 compression .SH HASH Algorithms: .TP 15 .PD .TP .PD .B md5 MD5 .TP .PD .B sha1 SHA1 .TP .PD .B sha256 SHA256 .TP .PD .B sha512 SHA512 .TP .PD .B openssl OpenSSL .SH SEE ALSO For a more or less complete description of PHAR look here: .PD 0 .P .B http://php.net/phar .PD 1 .P .SH BUGS You can view the list of known bugs or report any new bug you found at: .PD 0 .P .B http://bugs.php.net .PD 1 .SH AUTHORS The PHP Group: Thies C. Arntzen, Stig Bakken, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski. .P Work for the PHP archive was done by Gregory Beaver, Marcus Boerger. .P A List of active developers can be found here: .PD 0 .P .B http://www.php.net/credits.php .PD 1 .P And last but not least PHP was developed with the help of a huge amount of contributors all around the world. .SH VERSION INFORMATION This manpage describes \fBphar\fP, version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK GI�Zz\u- man/man1/phar.phar.1nu �[��� .so man1/phar.1 PK GI�ZG��� man/man1/php-cgi.1nu �[��� .so man1/php.1 PK GI�Z��-� � man/man1/php-config.1nu �[��� .TH php\-config 1 "2021" "The PHP Group" "Scripting Language" .SH NAME php\-config \- get information about PHP configuration and compile options .SH SYNOPSIS .B php\-config [options] .LP .SH DESCRIPTION .B php\-config is a simple shell script for obtaining information about installed PHP configuration. .SH OPTIONS .TP 15 .PD 0 .B \-\-prefix Directory prefix where PHP is installed, e.g. /usr/local .TP .PD 0 .B \-\-includes List of \-I options with all include files .TP .PD 0 .B \-\-ldflags LD Flags which PHP was compiled with .TP .PD 0 .B \-\-libs Extra libraries which PHP was compiled with .TP .PD 0 .B \-\-man-dir The directory prefix where the manpages is installed .TP .PD 0 .B \-\-extension-dir Directory where extensions are searched by default .TP .PD 0 .B \-\-include-dir Directory prefix where header files are installed by default .TP .PD 0 .B \-\-php-binary Full path to php CLI or CGI binary .TP .PD 0 .B \-\-php-sapis Show all SAPI modules available .TP .PD 0 .B \-\-configure-options Configure options to recreate configuration of current PHP installation .TP .PD 0 .B \-\-version PHP version .TP .PD 0 .B \-\-vernum PHP version as integer .RS .PD 1 .P .SH SEE ALSO .BR php (1) .SH VERSION INFORMATION This manpage describes \fBphp\fP, version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK GI�Z=�ɳ$ �$ man/man1/php.1nu �[��� .TH php 1 "2021" "The PHP Group" "Scripting Language" .SH NAME php \- PHP Command Line Interface 'CLI' .P php-cgi \- PHP Common Gateway Interface 'CGI' command .SH SYNOPSIS .B php [options] [ .B \-f\fP ] .IR file [[\-\-] .IR args.\|.\|. ] .LP .B php [options] .B \-r .IR code [[\-\-] .IR args.\|.\|. ] .LP .B php [options] [\-B .IR begin_code ] .B \-R .IR code [\-E .IR end_code ] [[\-\-] .IR args.\|.\|. ] .LP .B php [options] [\-B .IR begin_code ] .B \-F .IR file [\-E .IR end_code ] [[\-\-] .IR args.\|.\|. ] .LP .B php [options] \-\- [ .IR args.\|.\|. ] .LP \fBphp \fP[options] \fB\-a\fP .LP .B php [options] \-S .IR addr:port [\-t .IR docroot ] .LP .SH DESCRIPTION \fBPHP\fP is a widely\-used general\-purpose scripting language that is especially suited for Web development and can be embedded into HTML. This is the command line interface that enables you to do the following: .P You can parse and execute files by using parameter \-f followed by the name of the .IR file to be executed. .LP Using parameter \-r you can directly execute PHP .IR code simply as you would do inside a .B \.php file when using the .B eval() function. .LP It is also possible to process the standard input line by line using either the parameter \-R or \-F. In this mode each separate input line causes the .IR code specified by \-R or the .IR file specified by \-F to be executed. You can access the input line by \fB$argn\fP. While processing the input lines .B $argi contains the number of the actual line being processed. Further more the parameters \-B and \-E can be used to execute .IR code (see \-r) before and after all input lines have been processed respectively. Notice that the input is read from .B STDIN and therefore reading from .B STDIN explicitly changes the next input line or skips input lines. .LP PHP also contains an built-in web server for application development purpose. By using the \-S option where .B addr:port point to a local address and port PHP will listen to HTTP requests on that address and port and serve files from the current working directory or the .B docroot passed by the \-t option. .LP If none of \-r \-f \-B \-R \-F \-E or \-S is present but a single parameter is given then this parameter is taken as the filename to parse and execute (same as with \-f). If no parameter is present then the standard input is read and executed. .SH OPTIONS .TP 15 .PD 0 .B \-\-interactive .TP .PD 1 .B \-a Run PHP interactively. This lets you enter snippets of PHP code that directly get executed. When readline support is enabled you can edit the lines and also have history support. .TP .PD 0 .B \-\-bindpath \fIaddress:port\fP|\fIport\fP .TP .PD 1 .B \-b \fIaddress:port\fP|\fIport\fP Bind Path for external FASTCGI Server mode (CGI only). .TP .PD 0 .B \-\-no\-chdir .TP .PD 1 .B \-C Do not chdir to the script's directory (CGI only). .TP .PD 0 .B \-\-no\-header .TP .PD 1 .B \-q Quiet-mode. Suppress HTTP header output (CGI only). .TP .PD 0 .B \-\-timing \fIcount\fP .TP .PD 1 .B \-T \fIcount\fP Measure execution time of script repeated count times (CGI only). .TP .PD 0 .B \-\-php\-ini \fIpath\fP|\fIfile\fP .TP .PD 1 .B \-c \fIpath\fP|\fIfile\fP Look for .B php.ini file in the directory .IR path or use the specified .IR file .TP .PD 0 .B \-\-no\-php\-ini .TP .PD 1 .B \-n No .B php.ini file will be used .TP .PD 0 .B \-\-define \fIfoo\fP[=\fIbar\fP] .TP .PD 1 .B \-d \fIfoo\fP[=\fIbar\fP] Define INI entry .IR foo with value .IR bar .TP .B \-e Generate extended information for debugger/profiler .TP .PD 0 .B \-\-file \fIfile\fP .TP .PD 1 .B \-f \fIfile\fP Parse and execute .IR file .TP .PD 0 .B \-\-help .TP .PD 1 .B \-h This help .TP .PD 0 .B \-\-hide\-args .TP .PD 1 .B \-H Hide script name (\fIfile\fP) and parameters (\fIargs\.\.\.\fP) from external tools. For example you may want to use this when a php script is started as a daemon and the command line contains sensitive data such as passwords. .TP .PD 0 .B \-\-info .TP .PD 1 .B \-i PHP information and configuration .TP .PD 0 .B \-\-syntax\-check .TP .PD 1 .B \-l Syntax check only (lint) .TP .PD 0 .B \-\-modules .TP .PD 1 .B \-m Show compiled in modules .TP .PD 0 .B \-\-run \fIcode\fP .TP .PD 1 .B \-r \fIcode\fP Run PHP .IR code without using script tags .B '<?..?>' .TP .PD 0 .B \-\-process\-begin \fIcode\fP .TP .PD 1 .B \-B \fIbegin_code\fP Run PHP .IR begin_code before processing input lines .TP .PD 0 .B \-\-process\-code \fIcode\fP .TP .PD 1 .B \-R \fIcode\fP Run PHP .IR code for every input line .TP .PD 0 .B \-\-process\-file \fIfile\fP .TP .PD 1 .B \-F \fIfile\fP Parse and execute .IR file for every input line .TP .PD 0 .B \-\-process\-end \fIcode\fP .TP .PD 1 .B \-E \fIend_code\fP Run PHP .IR end_code after processing all input lines .TP .PD 0 .B \-\-syntax\-highlight .TP .PD 1 .B \-s Output HTML syntax highlighted source .TP .PD 0 .B \-\-server \fIaddr:port\fP .TP .PD 1 .B \-S \fIaddr:port\fP Start built-in web server on the given local address and port .TP .PD 0 .B \-\-docroot \fIdocroot\fP .TP .PD 1 .B \-t \fIdocroot\fP Specify the document root to be used by the built-in web server .TP .PD 0 .B \-\-version .TP .PD 1 .B \-v Version number .TP .PD 0 .B \-\-strip .TP .PD 1 .B \-w Output source with stripped comments and whitespace .TP .PD 0 .B \-\-zend\-extension \fIfile\fP .TP .PD 1 .B \-z \fIfile\fP Load Zend extension .IR file .TP .IR args.\|.\|. Arguments passed to script. Use .B '\-\-' .IR args when first argument starts with .B '\-' or script is read from stdin .TP .PD 0 .B \-\-rfunction .IR name .TP .PD 1 .B \-\-rf .IR name Shows information about function .B name .TP .PD 0 .B \-\-rclass .IR name .TP .PD 1 .B \-\-rc .IR name Shows information about class .B name .TP .PD 0 .B \-\-rextension .IR name .TP .PD 1 .B \-\-re .IR name Shows information about extension .B name .TP .PD 0 .B \-\-rzendextension .IR name .TP .PD 1 .B \-\-rz .IR name Shows information about Zend extension .B name .TP .PD 0 .B \-\-rextinfo .IR name .TP .PD 1 .B \-\-ri .IR name Shows configuration for extension .B name .TP .B \-\-ini Show configuration file names .SH FILES .TP 15 .B php\-cli.ini The configuration file for the CLI version of PHP. .TP .B php.ini The standard configuration file will only be used when .B php\-cli.ini cannot be found. .SH EXAMPLES .TP 5 \fIphp \-r 'echo "Hello World\\n";'\fP This command simply writes the text "Hello World" to standard out. .TP \fIphp \-r 'print_r(gd_info());'\fP This shows the configuration of your gd extension. You can use this to easily check which image formats you can use. If you have any dynamic modules you may want to use the same ini file that php uses when executed from your webserver. There are more extensions which have such a function. For dba use: .RS \fIphp \-r 'print_r(dba_handlers(1));'\fP .RE .TP \fIphp \-R 'echo strip_tags($argn)."\\n";'\fP This PHP command strips off the HTML tags line by line and outputs the result. To see how it works you can first look at the following PHP command \'\fIphp \-d html_errors=1 \-i\fP\' which uses PHP to output HTML formatted configuration information. If you then combine those two \'\fIphp \.\.\.|php \.\.\.\fP\' you'll see what happens. .TP \fIphp \-E 'echo "Lines: $argi\\n";'\fP Using this PHP command you can count the lines being input. .TP \fIphp \-R '@$l+=count(file($argn));' \-E 'echo "Lines:$l\\n";'\fP In this example PHP expects each input line being a file. It counts all lines of the files specified by each input line and shows the summarized result. You may combine this with tools like find and change the php scriptlet. .TP \fIphp \-R 'echo "$argn\\n"; fgets(STDIN);'\fP Since you have access to STDIN from within \-B \-R \-F and \-E you can skip certain input lines with your code. But note that in such cases $argi only counts the lines being processed by php itself. Having read this you will guess what the above program does: skipping every second input line. .SH TIPS You can use a shebang line to automatically invoke php from scripts. Only the CLI version of PHP will ignore such a first line as shown below: .P .PD 0 .RS #!/bin/php .P <?php .P // your script .P ?> .RE .PD 1 .P .SH SEE ALSO For a more or less complete description of PHP look here: .PD 0 .P .B http://www.php.net/manual/ .PD 1 .P .SH BUGS You can view the list of known bugs or report any new bug you found at: .PD 0 .P .B http://bugs.php.net .PD 1 .SH AUTHORS The PHP Group: Thies C. Arntzen, Stig Bakken, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski. .P Additional work for the CLI sapi was done by Edin Kadribasic, Marcus Boerger and Johannes Schlueter. .P A List of active developers can be found here: .PD 0 .P .B http://www.php.net/credits.php .PD 1 .P And last but not least PHP was developed with the help of a huge amount of contributors all around the world. .SH VERSION INFORMATION This manpage describes \fBphp\fP, version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK GI�Z~� F man/man1/phpdbg.1nu �[��� .TH phpdbg 1 "2021" "The PHP Group" "Scripting Language" .SH NAME phpdbg \- The interactive PHP debugger .SH SYNOPSIS .B phpdbg [options] [\fIfile\fP] [\fIargs...\fP] .SH DESCRIPTION .B phpdbg is a lightweight, powerful, easy to use debugging platform for PHP. .SH OPTIONS .TP 15 .B \-c \fIpath\fB|\fIfile\fR Look for .B php.ini file in the directory .IR path or use the specified .IR file .TP .B \-d \fIfoo\fP[=\fIbar\fP] Define INI entry .IR foo with value .IR bar .TP .B \-n No .B php.ini file will be used .TP .B \-z \fIfile\fR Load Zend extension .IR file .TP .BR \-q Do not print banner on startup .TP .B \-v Enable oplog output .TP .B \-b Disables use of color on the console .TP .B \-i \fIpath\fB|\fIfile\fR Override .phpgdbinit location (implies -I) .TP .B \-I Ignore .phpdbginit (default init file) .TP .B \-O \fIfile\fR Set oplog output to .IR file .TP .B \-r Jump straight to run .TP .B -e Generate extended information for debugger/profiler .TP .B \-E Enable step through eval() .TP .B \-s \fIdelimiter\fP Read code to execute from stdin with an optional .IR delimiter .TP .B \-S \fIsapi_name\fP Override SAPI name .TP .B \-l \fIport\fP Setup remote console port .TP .B \-a \fIaddress\fP Setup remote console bind address .TP .B \-x Enable XML output .TP .B \-p \fIopcode\fP Output opcodes and quit .TP .B \-h Print the help overview .TP .B \-V Version number .TP .IR args.\|.\|. Arguments passed to script. Use .B '\-\-' .IR args when first argument starts with .B '\-' or script is read from stdin .SH NOTES Passing .B \-rr will cause .B phpdbg to quit after execution, rather than returning to the console .SH FILES .TP 15 .B php.ini The standard configuration file .TP .B .phpdbginit The init file .SH SEE ALSO The online manual can be found at .PD 0 .P .B http://php.net/manual/book.phpdbg.php .PD 1 .SH BUGS You can view the list of known bugs or report any new bug you found at .PD 0 .P .B http://bugs.php.net/ .PD 1 .SH AUTHORS Written by Felipe Pena, Joe Watkins and Bob Weinand, formatted by Ondřej Surý for Debian project. .P A List of active developers can be found at .PD 0 .P .B http://www.php.net/credits.php .PD 1 .P And last but not least PHP was developed with the help of a huge amount of contributors all around the world. .SH VERSION INFORMATION This manpage describes \fBphpdbg\fP, for PHP version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK GI�Z\6�� � man/man1/phpize.1nu �[��� .TH phpize 1 "2021" "The PHP Group" "Scripting Language" .SH NAME phpize \- prepare a PHP extension for compiling .SH SYNOPSIS .B phpize [options] .LP .SH DESCRIPTION .B phpize is a shell script to prepare PHP extension for compiling. .SH OPTIONS .TP 15 .PD 0 .B \-\-clean Remove all created files .TP .PD 0 .B \-\-help Prints usage information .TP .PD 0 .B \-\-version .TP .PD 1 .B \-v Prints API version information .RS .PD 1 .P .SH SEE ALSO .BR php (1) .SH VERSION INFORMATION This manpage describes \fBphp\fP, version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK GI�ZօAq� � man/man8/php-fpm.8nu �[��� .TH PHP-FPM 8 "2021" "The PHP Group" "Scripting Language" .SH NAME .TP 15 php-fpm \- PHP FastCGI Process Manager 'PHP-FPM' .SH SYNOPSIS .B php-fpm [options] .LP .SH DESCRIPTION \fBPHP\fP is a widely\-used general\-purpose scripting language that is especially suited for Web development and can be embedded into HTML. This is a variant of PHP that will run in the background as a daemon, listening for CGI requests. Output is logged to /var/log/php-fpm.log. .LP Most options are set in the configuration file. The configuration file is /opt/alt/php80/etc/php-fpm.conf. By default, php-fpm will respond to CGI requests listening on localhost http port 9000. Therefore php-fpm expects your webserver to forward all requests for '.php' files to port 9000 and you should edit your webserver configuration file appropriately. .SH OPTIONS .TP 15 .B \-C Do not chdir to the script's directory .TP .PD 0 .B \-\-php\-ini \fIpath\fP|\fIfile\fP .TP .PD 1 .B \-c \fIpath\fP|\fIfile\fP Look for .B php.ini file in the directory .IR path or use the specified .IR file .TP .PD 0 .B \-\-no\-php\-ini .TP .PD 1 .B \-n No .B php.ini file will be used .TP .PD 0 .B \-\-define \fIfoo\fP[=\fIbar\fP] .TP .PD 1 .B \-d \fIfoo\fP[=\fIbar\fP] Define INI entry .IR foo with value .IR bar .TP .B \-e Generate extended information for debugger/profiler .TP .PD 0 .B \-\-help .TP .PD 1 .B \-h This help .TP .PD 0 .B \-\-info .TP .PD 1 .B \-i PHP information and configuration .TP .PD 0 .B \-\-modules .TP .PD 1 .B \-m Show compiled in modules .TP .PD 0 .B \-\-version .TP .PD 1 .B \-v Version number .B \-\-prefix \fIpath\fP .TP .PD 1 .B \-p Specify alternative prefix path (the default is /opt/alt/php80) .TP .PD 0 .B \-\-pid \fIfile\fP .TP .PD 1 .B \-g Specify the PID file location. .TP .PD 0 .B \-\-fpm\-config \fIfile\fP .TP .PD 1 .B \-y Specify alternative path to FastCGI process manager configuration file (the default is /opt/alt/php80/etc/php-fpm.conf) .TP .PD 0 .B \-\-test .TP .PD 1 .B \-t Test FPM configuration file and exit If called twice (\-tt), the configuration is dumped before exiting. .TP .PD 0 .B \-\-daemonize .TP .PD 1 .B \-D Force to run in background and ignore daemonize option from configuration file. .TP .PD 0 .B \-\-nodaemonize .TP .PD 1 .B \-F Force to stay in foreground and ignore daemonize option from configuration file. .TP .PD 0 .B \-\-force-stderr .TP .PD 1 .B \-O Force output to stderr in nodaemonize even if stderr is not a TTY. .TP .PD 0 .B \-\-allow\-to\-run\-as\-root .TP .PD 1 .B \-R Allow pool to run as root (disabled by default) .SH FILES .TP 15 .B php-fpm.conf The configuration file for the php-fpm daemon. .TP .B php.ini The standard php configuration file. .SH EXAMPLES For any unix systems which use init.d for their main process manager, you should use the init script provided to start and stop the php-fpm daemon. .P .PD 1 .RS sudo /etc/init.d/php-fpm start .RE .TP For any unix systems which use systemd for their main process manager, you should use the unit file provided to start and stop the php-fpm daemon. .P .PD 1 .RS sudo systemctl start php-fpm.service .RE .TP If your installation has no appropriate init script, launch php-fpm with no arguments. It will launch as a daemon (background process) by default. The file /var/run/php-fpm.pid determines whether php-fpm is already up and running. Once started, php-fpm then responds to several POSIX signals: .P .PD 0 .RS .B SIGINT,SIGTERM \fPimmediate termination .TP .B SIGQUIT \fPgraceful stop .TP .B SIGUSR1 \fPre-open log file .TP .B SIGUSR2 \fPgraceful reload of all workers + reload of fpm conf/binary .RE .PD 1 .P .SH TIPS The PHP-FPM CGI daemon will work well with most popular webservers, including Apache2, lighttpd and nginx. .PD 1 .P .SH SEE ALSO The PHP-FPM website: .PD 0 .P .B http://php-fpm.org .PD 1 .P For a more or less complete description of PHP look here: .PD 0 .P .B http://www.php.net/manual/ .PD 1 .P A nice introduction to PHP by Stig Bakken can be found here: .PD 0 .P .B http://www.zend.com/zend/art/intro.php .PD 1 .SH BUGS You can view the list of known bugs or report any new bug you found at: .PD 0 .P .B http://bugs.php.net .PD 1 .SH AUTHORS PHP-FPM SAPI was written by Andrei Nigmatulin. The mailing-lists are highload-php-en (English) and highload-php-ru (Russian). .P The PHP Group: Thies C. Arntzen, Stig Bakken, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski. .P A List of active developers can be found here: .PD 0 .P .B http://www.php.net/credits.php .PD 1 .P And last but not least PHP was developed with the help of a huge amount of contributors all around the world. .SH VERSION INFORMATION This manpage describes \fBphp-fpm\fP, version 8.0.30. .SH COPYRIGHT Copyright \(co The PHP Group .PD 0 .P Copyright (c) 2007-2009, Andrei Nigmatulin .PD 1 .LP This source file is subject to version 3.01 of the PHP license, that is bundled with this package in the file LICENSE, and is available through the world-wide-web at the following url: .PD 0 .P .B http://www.php.net/license/3_01.txt .PD 1 .P If you did not receive a copy of the PHP license and are unable to obtain it through the world-wide-web, please send a note to .B license@php.net so we can mail you a copy immediately. PK HI�Z�r¦J �J ) doc/pear/Archive_Tar/docs/Archive_Tar.txtnu �[��� Documentation for class Archive_Tar =================================== Last update : 2001-08-15 Overview : ---------- The Archive_Tar class helps in creating and managing GNU TAR format files compressed by GNU ZIP or not. The class offers basic functions like creating an archive, adding files in the archive, extracting files from the archive and listing the archive content. It also provide advanced functions that allow the adding and extraction of files with path manipulation. Sample : -------- // ----- Creating the object (uncompressed archive) $tar_object = new Archive_Tar("tarname.tar"); $tar_object->setErrorHandling(PEAR_ERROR_PRINT); // ----- Creating the archive $v_list[0]="file.txt"; $v_list[1]="data/"; $v_list[2]="file.log"; $tar_object->create($v_list); // ----- Adding files $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; $v_list[2]="log/file.log"; $tar_object->add($v_list); // ----- Adding more files $tar_object->add("release/newfile.log release/readme.txt"); // ----- Listing the content if (($v_list = $tar_object->listContent()) != 0) for ($i=0; $i<sizeof($v_list); $i++) { echo "Filename :'".$v_list[$i][filename]."'<br>"; echo " .size :'".$v_list[$i][size]."'<br>"; echo " .mtime :'".$v_list[$i][mtime]."' (".date("l dS of F Y h:i:s A", $v_list[$i][mtime]).")<br>"; echo " .mode :'".$v_list[$i][mode]."'<br>"; echo " .uid :'".$v_list[$i][uid]."'<br>"; echo " .gid :'".$v_list[$i][gid]."'<br>"; echo " .typeflag :'".$v_list[$i][typeflag]."'<br>"; } // ----- Extracting the archive in directory "install" $tar_object->extract("install"); Public arguments : ------------------ None Public Methods : ---------------- Method : Archive_Tar($p_tarname, $compress = null) Description : Archive_Tar Class constructor. This flavour of the constructor only declare a new Archive_Tar object, identifying it by the name of the tar file. If the compress argument is set the tar will be read or created as a gzip or bz2 compressed TAR file. Arguments : $p_tarname : A valid filename for the tar archive file. $p_compress : can be null, 'gz' or 'bz2'. For compatibility reason it can also be true. This parameter indicates if gzip or bz2 compression is required. Return value : The Archive_Tar object. Sample : $tar_object = new Archive_Tar("tarname.tar"); $tar_object_compressed = new Archive_Tar("tarname.tgz", true); How it works : Initialize the object. Method : create($p_filelist) Description : This method creates the archive file and add the files / directories that are listed in $p_filelist. If the file already exists and is writable, it is replaced by the new tar. It is a create and not an add. If the file exists and is read-only or is a directory it is not replaced. The method return false and a PEAR error text. The $p_filelist parameter can be an array of string, each string representing a filename or a directory name with their path if needed. It can also be a single string with names separated by a single blank. See also createModify() method for more details. Arguments : $p_filelist : An array of filenames and directory names, or a single string with names separated by a single blank space. Return value : true on success, false on error. Sample 1 : $tar_object = new Archive_Tar("tarname.tar"); $tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling $v_list[0]="file.txt"; $v_list[1]="data/"; (Optional '/' at the end) $v_list[2]="file.log"; $tar_object->create($v_list); Sample 2 : $tar_object = new Archive_Tar("tarname.tar"); $tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling $tar_object->create("file.txt data/ file.log"); How it works : Just calling the createModify() method with the right parameters. Method : createModify($p_filelist, $p_add_dir, $p_remove_dir = "") Description : This method creates the archive file and add the files / directories that are listed in $p_filelist. If the file already exists and is writable, it is replaced by the new tar. It is a create and not an add. If the file exists and is read-only or is a directory it is not replaced. The method return false and a PEAR error text. The $p_filelist parameter can be an array of string, each string representing a filename or a directory name with their path if needed. It can also be a single string with names separated by a single blank. The path indicated in $p_remove_dir will be removed from the memorized path of each file / directory listed when this path exists. By default nothing is removed (empty path "") The path indicated in $p_add_dir will be added at the beginning of the memorized path of each file / directory listed. However it can be set to empty "". The adding of a path is done after the removing of path. The path add/remove ability enables the user to prepare an archive for extraction in a different path than the origin files are. See also addModify() method for file adding properties. Arguments : $p_filelist : An array of filenames and directory names, or a single string with names separated by a single blank space. $p_add_dir : A string which contains a path to be added to the memorized path of each element in the list. $p_remove_dir : A string which contains a path to be removed from the memorized path of each element in the list, when relevant. Return value : true on success, false on error. Sample 1 : $tar_object = new Archive_Tar("tarname.tar"); $tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling $v_list[0]="file.txt"; $v_list[1]="data/"; (Optional '/' at the end) $v_list[2]="file.log"; $tar_object->createModify($v_list, "install"); // files are stored in the archive as : // install/file.txt // install/data // install/data/file1.txt // install/data/... all the files and sub-dirs of data/ // install/file.log Sample 2 : $tar_object = new Archive_Tar("tarname.tar"); $tar_object->setErrorHandling(PEAR_ERROR_PRINT); // Optional error handling $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; (Optional '/' at the end) $v_list[2]="log/file.log"; $tar_object->createModify($v_list, "install", "dev"); // files are stored in the archive as : // install/file.txt // install/data // install/data/file1.txt // install/data/... all the files and sub-dirs of data/ // install/log/file.log How it works : Open the file in write mode (erasing the existing one if one), call the _addList() method for adding the files in an empty archive, add the tar footer (512 bytes block), close the tar file. Method : addModify($p_filelist, $p_add_dir, $p_remove_dir="") Description : This method add the files / directories listed in $p_filelist at the end of the existing archive. If the archive does not yet exists it is created. The $p_filelist parameter can be an array of string, each string representing a filename or a directory name with their path if needed. It can also be a single string with names separated by a single blank. The path indicated in $p_remove_dir will be removed from the memorized path of each file / directory listed when this path exists. By default nothing is removed (empty path "") The path indicated in $p_add_dir will be added at the beginning of the memorized path of each file / directory listed. However it can be set to empty "". The adding of a path is done after the removing of path. The path add/remove ability enables the user to prepare an archive for extraction in a different path than the origin files are. If a file/dir is already in the archive it will only be added at the end of the archive. There is no update of the existing archived file/dir. However while extracting the archive, the last file will replace the first one. This results in a none optimization of the archive size. If a file/dir does not exist the file/dir is ignored. However an error text is send to PEAR error. If a file/dir is not readable the file/dir is ignored. However an error text is send to PEAR error. If the resulting filename/dirname (after the add/remove option or not) string is greater than 99 char, the file/dir is ignored. However an error text is send to PEAR error. Arguments : $p_filelist : An array of filenames and directory names, or a single string with names separated by a single blank space. $p_add_dir : A string which contains a path to be added to the memorized path of each element in the list. $p_remove_dir : A string which contains a path to be removed from the memorized path of each element in the list, when relevant. Return value : true on success, false on error. Sample 1 : $tar_object = new Archive_Tar("tarname.tar"); [...] $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; (Optional '/' at the end) $v_list[2]="log/file.log"; $tar_object->addModify($v_list, "install"); // files are stored in the archive as : // install/file.txt // install/data // install/data/file1.txt // install/data/... all the files and sub-dirs of data/ // install/file.log Sample 2 : $tar_object = new Archive_Tar("tarname.tar"); [...] $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; (Optional '/' at the end) $v_list[2]="log/file.log"; $tar_object->addModify($v_list, "install", "dev"); // files are stored in the archive as : // install/file.txt // install/data // install/data/file1.txt // install/data/... all the files and sub-dirs of data/ // install/log/file.log How it works : If the archive does not exists it create it and add the files. If the archive does exists and is not compressed, it open it, jump before the last empty 512 bytes block (tar footer) and add the files at this point. If the archive does exists and is compressed, a temporary copy file is created. This temporary file is then 'gzip' read block by block until the last empty block. The new files are then added in the compressed file. The adding of files is done by going through the file/dir list, adding files per files, in a recursive way through the directory. Each time a path need to be added/removed it is done before writing the file header in the archive. Method : add($p_filelist) Description : This method add the files / directories listed in $p_filelist at the end of the existing archive. If the archive does not yet exists it is created. The $p_filelist parameter can be an array of string, each string representing a filename or a directory name with their path if needed. It can also be a single string with names separated by a single blank. See addModify() method for details and limitations. Arguments : $p_filelist : An array of filenames and directory names, or a single string with names separated by a single blank space. Return value : true on success, false on error. Sample 1 : $tar_object = new Archive_Tar("tarname.tar"); [...] $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; (Optional '/' at the end) $v_list[2]="log/file.log"; $tar_object->add($v_list); Sample 2 : $tar_object = new Archive_Tar("tarname.tgz", true); [...] $v_list[0]="dev/file.txt"; $v_list[1]="dev/data/"; (Optional '/' at the end) $v_list[2]="log/file.log"; $tar_object->add($v_list); How it works : Simply call the addModify() method with the right parameters. Method : addString($p_filename, $p_string, $p_datetime, $p_params) Description : This method add a single string as a file at the end of the existing archive. If the archive does not yet exists it is created. Arguments : $p_filename : A string which contains the full filename path that will be associated with the string. $p_string : The content of the file added in the archive. $p_datetime : (Optional) Timestamp of the file (default = now) $p_params : (Optional) Various file metadata: stamp - As above, timestamp of the file mode - UNIX-style permissions (default 0600) type - Is this a regular file or link (see TAR format spec for how to create a hard/symlink) uid - UNIX-style user ID (default 0 = root) gid - UNIX-style group ID (default 0 = root) Return value : true on success, false on error. Sample 1 : $v_archive = & new Archive_Tar($p_filename); $v_archive->setErrorHandling(PEAR_ERROR_PRINT); $v_result = $v_archive->addString('data/test.txt', 'This is the text of the string'); $v_result = $v_archive->addString( 'data/test.sh', "#!/bin/sh\necho 'Hello'", time(), array( "mode" => 0755, "uid" => 34 ) ); Method : extract($p_path = "") Description : This method extract all the content of the archive in the directory indicated by $p_path.If $p_path is optional, if not set the archive is extracted in the current directory. While extracting a file, if the directory path does not exists it is created. See extractModify() for details and limitations. Arguments : $p_path : Optional path where the files/dir need to by extracted. Return value : true on success, false on error. Sample : $tar_object = new Archive_Tar("tarname.tar"); $tar_object->extract(); How it works : Simply call the extractModify() method with appropriate parameters. Method : extractModify($p_path, $p_remove_path) Description : This method extract all the content of the archive in the directory indicated by $p_path. When relevant the memorized path of the files/dir can be modified by removing the $p_remove_path path at the beginning of the file/dir path. While extracting a file, if the directory path does not exists it is created. While extracting a file, if the file already exists it is replaced without looking for last modification date. While extracting a file, if the file already exists and is write protected, the extraction is aborted. While extracting a file, if a directory with the same name already exists, the extraction is aborted. While extracting a directory, if a file with the same name already exists, the extraction is aborted. While extracting a file/directory if the destination directory exist and is write protected, or does not exist but can not be created, the extraction is aborted. If after extraction an extracted file does not show the correct stored file size, the extraction is aborted. When the extraction is aborted, a PEAR error text is set and false is returned. However the result can be a partial extraction that may need to be manually cleaned. Arguments : $p_path : The path of the directory where the files/dir need to by extracted. $p_remove_path : Part of the memorized path that can be removed if present at the beginning of the file/dir path. Return value : true on success, false on error. Sample : // Imagine tarname.tar with files : // dev/data/file.txt // dev/data/log.txt // readme.txt $tar_object = new Archive_Tar("tarname.tar"); $tar_object->extractModify("install", "dev"); // Files will be extracted there : // install/data/file.txt // install/data/log.txt // install/readme.txt How it works : Open the archive and call a more generic function that can extract only a part of the archive or all the archive. See extractList() method for more details. Method : extractInString($p_filename) Description : This method extract from the archive one file identified by $p_filename. The return value is a string with the file content, or NULL on error. Arguments : $p_filename : The path of the file to extract in a string. Return value : a string with the file content or NULL. Sample : // Imagine tarname.tar with files : // dev/data/file.txt // dev/data/log.txt // dev/readme.txt $v_archive = & new Archive_Tar('tarname.tar'); $v_archive->setErrorHandling(PEAR_ERROR_PRINT); $v_string = $v_archive->extractInString('dev/readme.txt'); echo $v_string; Method : listContent() Description : This method returns an array of arrays that describe each file/directory present in the archive. The array is not sorted, so it show the position of the file in the archive. The file informations are : $file[filename] : Name and path of the file/dir. $file[mode] : File permissions (result of fileperms()) $file[uid] : user id $file[gid] : group id $file[size] : filesize $file[mtime] : Last modification time (result of filemtime()) $file[typeflag] : "" for file, "5" for directory Arguments : Return value : An array of arrays or 0 on error. Sample : $tar_object = new Archive_Tar("tarname.tar"); if (($v_list = $tar_object->listContent()) != 0) for ($i=0; $i<sizeof($v_list); $i++) { echo "Filename :'".$v_list[$i][filename]."'<br>"; echo " .size :'".$v_list[$i][size]."'<br>"; echo " .mtime :'".$v_list[$i][mtime]."' (". date("l dS of F Y h:i:s A", $v_list[$i][mtime]).")<br>"; echo " .mode :'".$v_list[$i][mode]."'<br>"; echo " .uid :'".$v_list[$i][uid]."'<br>"; echo " .gid :'".$v_list[$i][gid]."'<br>"; echo " .typeflag :'".$v_list[$i][typeflag]."'<br>"; } How it works : Call the same function as an extract however with a flag to only go through the archive without extracting the files. Method : extractList($p_filelist, $p_path = "", $p_remove_path = "") Description : This method extract from the archive only the files indicated in the $p_filelist. These files are extracted in the current directory or in the directory indicated by the optional $p_path parameter. If indicated the $p_remove_path can be used in the same way as it is used in extractModify() method. Arguments : $p_filelist : An array of filenames and directory names, or a single string with names separated by a single blank space. $p_path : The path of the directory where the files/dir need to by extracted. $p_remove_path : Part of the memorized path that can be removed if present at the beginning of the file/dir path. Return value : true on success, false on error. Sample : // Imagine tarname.tar with files : // dev/data/file.txt // dev/data/log.txt // readme.txt $tar_object = new Archive_Tar("tarname.tar"); $tar_object->extractList("dev/data/file.txt readme.txt", "install", "dev"); // Files will be extracted there : // install/data/file.txt // install/readme.txt How it works : Go through the archive and extract only the files present in the list. PK HI�Z���x x doc/pear/PEAR/INSTALLnu �[��� PEAR - The PEAR Installer ========================= Installing the PEAR Installer. You should install PEAR on a local development machine first. Installing PEAR on a remote production machine should only be done after you are familiar with PEAR and have tested code using PEAR on your development machine. There are two methods of installing PEAR - PEAR bundled in PHP - go-pear We will first examine how to install PEAR that is bundled with PHP. Microsoft Windows ================= If you are running PHP 5.2.0 or newer, simply download and run the windows installer (.msi) and PEAR can be automatically installed. Otherwise, for older PHP versions, download the .zip of windows, there is a script included with your PHP distribution that is called "go-pear". You must open a command box in order to run it. Click "start" then click "Run..." and type "cmd.exe" to open a command box. Use "cd" to change directory to the location of PHP where you unzipped it, and run the go-pear command. Unix ==== When compiling PHP from source, you simply need to include the --with-pear directive on the "./configure" command. This is "on" by default in most PHP versions, but it doesn't hurt to list it explicitly. You should also consider enabling the zlib extension via --enable-zlib, so that the PEAR installer will be able to handle gzipped files (i.e. smaller package files for faster downloads). Later, when you run "make install" to install PHP itself, part of the process will be prompts that ask you where you want PEAR to be installed. go-pear ======= For users who cannot perform the above steps, or who wish to obtain the latest PEAR with a slightly higher risk of failure, use go-pear. go-pear is obtained by downloading http://pear.php.net/go-pear and saving it as go-pear.php. After downloading, simply run "php go-pear.php" or open it in a web browser (windows only) to download and install PEAR. You can always ask general installation questions on pear-general@lists.php.net, a public mailing list devoted to support for PEAR packages and installation- related issues. Happy PHPing, we hope PEAR will be a great tool for your development work! PK HI�Z�u��� � doc/pear/PEAR/LICENSEnu �[��� Copyright (c) 1997-2009, Stig Bakken <ssb@php.net>, Gregory Beaver <cellog@php.net>, Helgi Þormar Þorbjörnsson <helgi@php.net>, Tomas V.V.Cox <cox@idecnet.com>, Martin Jansen <mj@php.net>. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PK HI�Z�E�� � doc/pear/PEAR/README.rstnu �[��� ************************* PEAR - The PEAR Installer ************************* .. image:: https://travis-ci.org/pear/pear-core.svg?branch=stable :target: https://travis-ci.org/pear/pear-core ========================================= What is the PEAR Installer? What is PEAR? ========================================= PEAR is the PHP Extension and Application Repository, found at http://pear.php.net. The **PEAR Installer** is this software, which contains executable files and PHP code that is used to **download and install** PEAR code from pear.php.net. PEAR contains useful **software libraries and applications** such as MDB2 (database abstraction), HTML_QuickForm (HTML forms management), PhpDocumentor (auto-documentation generator), DB_DataObject (Data Access Abstraction), and many hundreds more. Browse all available packages at http://pear.php.net, the list is constantly growing and updating to reflect improvements in the PHP language. .. warning:: Do not run PEAR without installing it - if you downloaded this tarball manually, you MUST install it. Read the instructions in INSTALL prior to use. ============= Documentation ============= Documentation for PEAR can be found at http://pear.php.net/manual/. Installation documentation can be found in the INSTALL file included in this tarball. ===== Tests ===== Run the tests without installation as follows:: $ ./scripts/pear.sh run-tests -r tests You should have the ``Text_Diff`` package installed to get nicer error output. To run the tests with another PHP version, modify ``php_bin`` and set the ``PHP_PEAR_PHP_BIN`` environment variable:: $ pear config-set php_bin /usr/local/bin/php7 $ PHP_PEAR_PHP_BIN=/usr/local/bin/php7 ./scripts/pear.sh run-tests -r tests Happy PHPing, we hope PEAR will be a great tool for your development work! Test dependencies ================= * ``zlib`` ========= Releasing ========= Create a PEAR package, as well as phars for pear-less installation, simply run ``build-release.sh``). ``go-pear.phar`` contains the PEAR installer installer that asks where to install it. It is available from http://pear.php.net/go-pear.phar. ``install-pear-nozlib.phar`` installs PEAR automatically without asking anything. It is shipped with PHP itself. PK HI�ZDG�e� � ! doc/pear/Structures_Graph/LICENSEnu �[��� GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. PK HI�Zx� �� � N doc/pear/Structures_Graph/docs/tutorials/Structures_Graph/Structures_Graph.pkgnu �[��� <refentry id="{@id package.database.structures_graph.tutorial}"> <refnamediv> <refname><classname>Structures_Graph</classname> Tutorial</refname> <refpurpose>A first tour of graph datastructure manipulation</refpurpose> </refnamediv> <refsect1 id="{@id package.database.structures_graph.tutorial.intro}"> <title>Introduction</title> <para> Structures_Graph is a package for creating and manipulating graph datastructures. A graph is a set of objects, called nodes, connected by arcs. When used as a datastructure, usually nodes contain data, and arcs represent relationships between nodes. When arcs have a direction, and can be travelled only one way, graphs are said to be directed. When arcs have no direction, and can always be travelled both ways, graphs are said to be non directed. </para> <para> Structures_Graph provides an object oriented API to create and directly query a graph, as well as a set of Manipulator classes to extract information from the graph. </para> </refsect1> <refsect1 id="{@id package.database.structures_graph.tutorial.creation}"> <title>Creating a Graph</title> <para> Creating a graph is done using the simple constructor: <programlisting> <![CDATA[ require_once 'Structures/Graph.php'; $directedGraph =& new Structures_Graph(true); $nonDirectedGraph =& new Structures_Graph(false); ]]> </programlisting> and passing the constructor a flag telling it whether the graph should be directed. A directed graph will always be directed during its lifetime. It's a permanent characteristic. </para> <para> To fill out the graph, we'll need to create some nodes, and then call Graph::addNode. <programlisting> <![CDATA[ require_once 'Structures/Graph/Node.php'; $nodeOne =& new Structures_Graph_Node(); $nodeTwo =& new Structures_Graph_Node(); $nodeThree =& new Structures_Graph_Node(); $directedGraph->addNode(&$nodeOne); $directedGraph->addNode(&$nodeTwo); $directedGraph->addNode(&$nodeThree); ]]> </programlisting> and then setup the arcs: <programlisting> <![CDATA[ $nodeOne->connectTo($nodeTwo); $nodeOne->connectTo($nodeThree); ]]> </programlisting> Note that arcs can only be created after the nodes have been inserted into the graph. </para> </refsect1> <refsect1 id="{@id package.database.structures_graph.tutorial.nodesanddata}"> <title>Associating Data</title> <para> Graphs are only useful as datastructures if they can hold data. Structure_Graph stores data in nodes. Each node contains a setter and a getter for its data. <programlisting> <![CDATA[ $nodeOne->setData("Node One's Data is a String"); $nodeTwo->setData(1976); $nodeThree->setData('Some other string'); print("NodeTwo's Data is an integer: " . $nodeTwo->getData()); ]]> </programlisting> </para> <para> Structure_Graph nodes can also store metadata, alongside with the main data. Metadata differs from regular data just because it is stored under a key, making it possible to store more than one data reference per node. The metadata getter and setter need the key to perform the operation: <programlisting> <![CDATA[ $nodeOne->setMetadata('example key', "Node One's Sample Metadata"); print("Metadata stored under key 'example key' in node one: " . $nodeOne->getMetadata('example key')); $nodeOne->unsetMetadata('example key'); ]]> </programlisting> </para> </refsect1> <refsect1 id="{@id package.database.structures_graph.tutorial.querying}"> <title>Querying a Graph</title> <para> Structures_Graph provides for basic querying of the graph: <programlisting> <![CDATA[ // Nodes are able to calculate their indegree and outdegree print("NodeOne's inDegree: " . $nodeOne->inDegree()); print("NodeOne's outDegree: " . $nodeOne->outDegree()); // and naturally, nodes can report on their arcs $arcs = $nodeOne->getNeighbours(); for ($i=0;$i<sizeof($arcs);$i++) { print("NodeOne has an arc to " . $arcs[$i]->getData()); } ]]> </programlisting> </para> </refsect1> </refentry> PK HI�Z5k��# �# &