<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://htyp.org/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Woozle</id>
	<title>HTYP - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://htyp.org/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Woozle"/>
	<link rel="alternate" type="text/html" href="https://htyp.org/Special:Contributions/Woozle"/>
	<updated>2026-10-07T15:47:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Category:software/chat_community&amp;diff=29409</id>
		<title>Category:software/chat community</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Category:software/chat_community&amp;diff=29409"/>
		<updated>2026-10-02T18:30:38Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;software for chat communities to use&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;software for chat communities to use&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=SPF&amp;diff=29408</id>
		<title>SPF</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=SPF&amp;diff=29408"/>
		<updated>2026-07-14T16:30:14Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:anti-spam]]&lt;br /&gt;
[[category:email/server/configuration]]&lt;br /&gt;
{{fmt/title|SPF: Sender Policy Framework}}&lt;br /&gt;
==About==&lt;br /&gt;
[[SPF]] (Sender Policy Framework) is an anti-spam protocol in which a DNS record specifies what IP addresses are allowed to send messages with a &amp;quot;from&amp;quot; address coming from that domain. The IP addresses may be specified literally (numerically, using [[/term/cidr-length|CIDR address-range syntax]]) or as domain-names. SPF is defined in [https://www.rfc-editor.org/rfc/rfc7208.html RFC 7208] ([https://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/21/ status]).&lt;br /&gt;
===DNS Configuration===&lt;br /&gt;
Discussion of the DNS record format is in [https://www.rfc-editor.org/rfc/rfc7208.html#section-3 Section 3]. SPF uses TXT records; there must be only one SPF record per domain or subdomain. A record&#039;s contents must start with &amp;quot;&amp;lt;code&amp;gt;v=spf1&amp;lt;/code&amp;gt;&amp;quot; in order to be recognized as an SPF record.&lt;br /&gt;
&lt;br /&gt;
The remainder of the contents consists of a set of terms, formatted according to these nearly-indecipherable rules:&lt;br /&gt;
   [[/term/]]s            = *( 1*SP ( directive / modifier ) )&lt;br /&gt;
 &lt;br /&gt;
   directive        = [ qualifier ] mechanism&lt;br /&gt;
   [[/qual/]]ifier        = &amp;quot;+&amp;quot; / &amp;quot;-&amp;quot; / &amp;quot;?&amp;quot; / &amp;quot;~&amp;quot;&lt;br /&gt;
   mechanism        = ( all / include / a / mx / ptr / ip4 / ip6 / exists )&lt;br /&gt;
   modifier         = redirect / explanation / unknown-modifier&lt;br /&gt;
   unknown-modifier = name &amp;quot;=&amp;quot; macro-string&lt;br /&gt;
                      ; where name is not any known modifier&lt;br /&gt;
 &lt;br /&gt;
   name             = ALPHA *( ALPHA / DIGIT / &amp;quot;-&amp;quot; / &amp;quot;_&amp;quot; / &amp;quot;.&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
This seems to translate to &amp;quot;one or more terms, where each term starts with either {a &#039;&#039;qualifier&#039;&#039; followed by a &#039;&#039;directive&#039;&#039; (which is a qualifier plus a mechanism)} or a &#039;&#039;modifier&#039;&#039;, and multiple terms are separated by spaces&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Tentatively, it&#039;s best to think of &amp;quot;modifiers&amp;quot; as a small set of additional directives. It&#039;s noted in that they&#039;re intended to allow for future expansion&lt;br /&gt;
==Examples==&lt;br /&gt;
This config seems to be at least partly functional:&lt;br /&gt;
 &#039;&#039;&#039;TXT&#039;&#039;&#039; v=spf1 mx mx:mail.vbz.net a a:mail.vbz.net   ~all&lt;br /&gt;
&lt;br /&gt;
This config does not get through to Gmail:&lt;br /&gt;
 &#039;&#039;&#039;TXT&#039;&#039;&#039; v=spf1 ip4:165.227.176.23 ip6:2604:a880:800:a1::126e:6001 -all&lt;br /&gt;
==Links==&lt;br /&gt;
* {{wikipedia|Sender Policy Framework}}&lt;br /&gt;
* [https://www.rfc-editor.org/rfc/rfc7208.html RFC 7208] ([https://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/21/ status])&lt;br /&gt;
* [https://senderpolicyframework.com config/validator tool]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Git/remote&amp;diff=29407</id>
		<title>Git/remote</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Git/remote&amp;diff=29407"/>
		<updated>2026-07-14T15:39:18Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Examples==&lt;br /&gt;
* &#039;&#039;&#039;git remote add {{arg|server alias}} {{arg|URL}}&#039;&#039;&#039;&lt;br /&gt;
** adds a remote server&lt;br /&gt;
** Note that although these URLs typically end in &amp;quot;.git&amp;quot; (on GitHub and similar services), they&#039;re actually the user-relative path to the folder containing the Git repository. (A valid repository will always contain a .git folder.)&lt;br /&gt;
* &#039;&#039;&#039;git remote&#039;&#039;&#039; -v&lt;br /&gt;
** lists aliases of remote servers, with definitions&lt;br /&gt;
* &#039;&#039;&#039;git remote&#039;&#039;&#039; show&lt;br /&gt;
** seems to just list remote server aliases (no information)&lt;br /&gt;
* &#039;&#039;&#039;git remote&#039;&#039;&#039; show {{arg|server alias}}&lt;br /&gt;
** displays information about a remote server (some of which comes from querying the server, so this only works if the connection does)&lt;br /&gt;
===from the Manpage===&lt;br /&gt;
Add a new remote, fetch, and check out a branch from it:&lt;br /&gt;
&lt;br /&gt;
               $ git remote&lt;br /&gt;
               origin&lt;br /&gt;
               $ git branch -r&lt;br /&gt;
                 origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
                 origin/master&lt;br /&gt;
               $ git remote add staging git://git.kernel.org/.../gregkh/staging.git&lt;br /&gt;
               $ git remote&lt;br /&gt;
               origin&lt;br /&gt;
               staging&lt;br /&gt;
               $ git fetch staging&lt;br /&gt;
               ...&lt;br /&gt;
               From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging&lt;br /&gt;
                * [new branch]      master     -&amp;gt; staging/master&lt;br /&gt;
                * [new branch]      staging-linus -&amp;gt; staging/staging-linus&lt;br /&gt;
                * [new branch]      staging-next -&amp;gt; staging/staging-next&lt;br /&gt;
               $ git branch -r&lt;br /&gt;
                 origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
                 origin/master&lt;br /&gt;
                 staging/master&lt;br /&gt;
                 staging/staging-linus&lt;br /&gt;
                 staging/staging-next&lt;br /&gt;
               $ git checkout -b staging staging/master&lt;br /&gt;
==Reference==&lt;br /&gt;
* {{l/manpage|git-remote|manpage}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Google&amp;diff=29406</id>
		<title>Google</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Google&amp;diff=29406"/>
		<updated>2026-07-01T18:21:34Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::web service]]&lt;br /&gt;
[[category:businesses]]&lt;br /&gt;
[[to do::Information about the search service should probably be moved to Google/search, leaving this page to be about the company and all of its services.]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;&lt;br /&gt;
==Pages==&lt;br /&gt;
* [[Google Adwords Program Terms]]&lt;br /&gt;
* [[Google Domains]]&lt;br /&gt;
* [[Google+]]&lt;br /&gt;
* [[Gmail]]&lt;br /&gt;
==Outlinks==&lt;br /&gt;
===Reference===&lt;br /&gt;
* {{wikipedia}}&lt;br /&gt;
* [http://google.com official site]&lt;br /&gt;
** [https://support.google.com/websearch/answer/2466433?hl=en Search operators]&lt;br /&gt;
* [https://killedbygoogle.com Killed by Google]: services Google offered and then shuttered&lt;br /&gt;
{{links/news}}&lt;br /&gt;
===to file===&lt;br /&gt;
* &#039;&#039;&#039;2015-12-04&#039;&#039;&#039; [http://paulstamatiou.com/review-project-fi-by-google/ Review: Project Fi by Google]&lt;br /&gt;
* &#039;&#039;&#039;2008-05-16&#039;&#039;&#039; [http://bits.blogs.nytimes.com/2008/05/12/google-wants-to-help-web-sites-make-new-friends/?ref=technology Google Wants to Help Web Sites Make New Friends]: article about [[Google Friend Connect]]&lt;br /&gt;
* &#039;&#039;&#039;2007-07-07&#039;&#039;&#039; [http://www.jessestay.com/articles/2007/07/07/grand-central-googles-path-to-the-cell-phone-market/ Grand Central - Google’s Path to the Cell Phone Market?]&lt;br /&gt;
* &#039;&#039;&#039;2007-06-14&#039;&#039;&#039; [http://googleblog.blogspot.com/2007/06/is-there-doctor-in-family.html Is there a doctor in the family?] (Official Google Blog)&lt;br /&gt;
** &#039;&#039;&#039;2007-06-14&#039;&#039;&#039; [http://www.jessestay.com/articles/2007/06/14/yes-google-to-enter-health-care/ Yes, Google to Enter Health Care] (blog entry)&lt;br /&gt;
* &#039;&#039;&#039;2007-06-08&#039;&#039;&#039; [http://www.dailymail.co.uk/pages/live/articles/news/news.html?in_article_id=460901&amp;amp;in_page_id=1770 The internet is destroying the world as we know it] by A.N. Wilson: &amp;quot;Not content with becoming the world’s dominant internet search engine, [Eric Schmidt, Google’s chief executive] revealed that Google hoped to acquire a mass of personal information about each of its regular users, to the extent that it will one day be able to tell people how they should conduct almost every aspect of their lives. &amp;quot;The goal is to enable Google users to be able to ask questions such as &#039;What shall I do tomorrow?&#039; and &#039;What job shall I take?&#039;&amp;quot; said Mr Schmidt. For anyone who cares about personal liberties and privacy, this is a truly terrifying prospect.&amp;quot;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=fediverse&amp;diff=29405</id>
		<title>fediverse</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=fediverse&amp;diff=29405"/>
		<updated>2026-07-01T14:08:02Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:computer terminology]]&lt;br /&gt;
==About==&lt;br /&gt;
The [[fediverse]] or fedisphere is any system of computing systems that connect together as peers without a central server or directory, also referred to as a &amp;quot;federated network&amp;quot;. It may also refer to those systems which are compatible with (and connect to) a specific protocol, such as &amp;quot;the [[GNU Social]] fediverse&amp;quot; or &amp;quot;the [[software/Diaspora|Diaspora]] fediverse&amp;quot;, although those are increasingly federated with the larger [[ActivityPub]] [[social networking]] fediverse.&lt;br /&gt;
&lt;br /&gt;
It is most commonly used in [[federated social networking]].&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://jointhefediverse.net/?lang=en-us Join the fediverse]: a page to help you find an instance&lt;br /&gt;
** This is the fediverse equivalent of [[Join Mastodon]].&lt;br /&gt;
* [https://fedidb.com FediDB]: data about the fediverse, in a friendly format&lt;br /&gt;
* [https://fediverse.party/ fediverse.party]: a guide to the social networking fediverse&lt;br /&gt;
{{links/news}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=fediverse&amp;diff=29404</id>
		<title>fediverse</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=fediverse&amp;diff=29404"/>
		<updated>2026-07-01T14:06:20Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:computer terminology]]&lt;br /&gt;
==About==&lt;br /&gt;
The [[fediverse]] or fedisphere is any system of computing systems that connect together as peers without a central server or directory, also referred to as a &amp;quot;federated network&amp;quot;. It may also refer to those systems which are compatible with (and connect to) a specific protocol, such as &amp;quot;the [[GNU Social]] fediverse&amp;quot; or &amp;quot;the [[software/Diaspora|Diaspora]] fediverse&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is most commonly used in [[federated social networking]], though there are other applications.&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://jointhefediverse.net/?lang=en-us Join the fediverse]: a page to help you find an instance&lt;br /&gt;
** This is the fediverse equivalent of [[Join Mastodon]].&lt;br /&gt;
* [https://fedidb.com FediDB]: data about the fediverse, in a friendly format&lt;br /&gt;
* [https://fediverse.party/ fediverse.party]: a guide to the social networking fediverse&lt;br /&gt;
{{links/news}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Milwaukee_Handtrucks&amp;diff=29403</id>
		<title>Milwaukee Handtrucks</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Milwaukee_Handtrucks&amp;diff=29403"/>
		<updated>2026-06-26T16:54:11Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{seed}} Milwaukee Handtrucks, based in {{l/pfx|US/WI/|Greenfield}}, Wisconsin, is a maker of handtrucks that are widely distributed in the US. It is a subsidiary of Gleason Corporation ([https://www.gleasoncorporation.com home page]). ==Links== * [https://www.milwaukeehandtrucks.com/ home page]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{seed}}&lt;br /&gt;
[[Milwaukee Handtrucks]], based in {{l/pfx|US/WI/|Greenfield}}, [[US/WI|Wisconsin]], is a maker of [[handtruck]]s that are widely distributed in the US. It is a subsidiary of [[Gleason Corporation]] ([https://www.gleasoncorporation.com home page]).&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.milwaukeehandtrucks.com/ home page]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=cmd/adduser&amp;diff=29402</id>
		<title>cmd/adduser</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=cmd/adduser&amp;diff=29402"/>
		<updated>2026-06-25T13:27:24Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hdr/command/linux}}&lt;br /&gt;
[[category:Debian]]&lt;br /&gt;
==Basics==&lt;br /&gt;
{{l/cmd|adduser}} is a command for creating users on a [[Debian]]-based system. It is somewhat higher-level than the {{l/cmd|useradd}} command.&lt;br /&gt;
* &#039;&#039;&#039;manpages&#039;&#039;&#039;: [https://manpages.ubuntu.com/manpages/xenial/en/man8/adduser.8.html Ubuntu], [https://linux.die.net/man/8/adduser die.net]&lt;br /&gt;
==Example==&lt;br /&gt;
This should add a new user with sudo privileges, no password, and skips the interactive prompts (but I have not tested it yet):&lt;br /&gt;
 {{fmt/arg/opt|sudo}} adduser --disabled-password --gecos &amp;quot;&amp;quot; {{fmt/arg|username}}&lt;br /&gt;
 {{fmt/arg/opt|sudo}} usermod -aG sudo {{fmt/arg|username}}&lt;br /&gt;
* The &amp;quot;sudo&amp;quot; is optional if you are acting as root.&lt;br /&gt;
* &amp;quot;&amp;lt;code&amp;gt;--disabled-password&amp;lt;/code&amp;gt;&amp;quot; sets the password field to &amp;quot;&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&amp;quot;, which apparently disables all password authentication.&lt;br /&gt;
* the &amp;quot;sudo&amp;quot; group (in the 2nd command) is for [[Debian]]-derived Linux flavors; [[Red Hat]] flavors apparently use the &amp;quot;wheel&amp;quot; group.&lt;br /&gt;
==Related==&lt;br /&gt;
* {{l/cmd|usermod}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/file/glob&amp;diff=29401</id>
		<title>PHP/file/glob</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/file/glob&amp;diff=29401"/>
		<updated>2026-05-09T01:52:59Z</updated>

		<summary type="html">&lt;p&gt;Woozle: link update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP filespec wildcard matching &amp;amp; searching|aka &amp;quot;globbing&amp;quot;}}&lt;br /&gt;
==About==&lt;br /&gt;
PHP can do glob-based directory listings and can also check a given filename string against a given glob string.&lt;br /&gt;
&lt;br /&gt;
See also: [[globbing]]&lt;br /&gt;
==Functions==&lt;br /&gt;
* [https://www.php.net/manual/en/function.fnmatch {{fmt/code|fnmatch()}}] reports whether the given filespec string matches the given wildcard string&lt;br /&gt;
** Note that this does appear to work as expected for filespecs (not just filenames):&lt;br /&gt;
 php &amp;gt; echo &amp;quot;MATCH: [&amp;quot;.fnmatch(&#039;/*test/*thing&#039;,&#039;/sometest/something&#039;).&amp;quot;]\n&amp;quot;;&lt;br /&gt;
 MATCH: [1]&lt;br /&gt;
 php &amp;gt; echo &amp;quot;MATCH: [&amp;quot;.fnmatch(&#039;/*test/*thing&#039;,&#039;/sometest/somethong&#039;).&amp;quot;]\n&amp;quot;;&lt;br /&gt;
 MATCH: []&lt;br /&gt;
 php &amp;gt; echo &amp;quot;MATCH: [&amp;quot;.fnmatch(&#039;/*test/&#039;,&#039;/sometest/somethong&#039;).&amp;quot;]\n&amp;quot;;&lt;br /&gt;
 MATCH: []&lt;br /&gt;
 php &amp;gt; echo &amp;quot;MATCH: [&amp;quot;.fnmatch(&#039;/*test/*&#039;,&#039;/sometest/somethong&#039;).&amp;quot;]\n&amp;quot;;&lt;br /&gt;
 MATCH: [1]&lt;br /&gt;
* [[PHP/fx/glob|{{fmt/code|glob()}}]] accepts a [[filespec]] that includes a [[file mask]], and returns a list of matching [[filespec]]s.&lt;br /&gt;
** A file mask in this context can be e.g. {{fmt/code|*.php}} or {{fmt/code|/home/woozle/*.php}} but not {{fmt/code|~/*.php}}.&lt;br /&gt;
** The {{fmt/code|*}} and {{fmt/code|?}} wildcards are both recognized.&lt;br /&gt;
** The mask may include multiple wildcards, for folders as well as files.&lt;br /&gt;
*** &#039;&#039;&#039;Example&#039;&#039;&#039;: {{fmt/code|/b*/b*}} will return all files beginning with b inside root-level folders beginning with b.&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx/glob&amp;diff=29400</id>
		<title>PHP/fx/glob</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx/glob&amp;diff=29400"/>
		<updated>2026-05-09T01:51:12Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{page/PHP/fx}} ==About== * &amp;#039;&amp;#039;&amp;#039;Purpose&amp;#039;&amp;#039;&amp;#039;: lists files that match globbing rules ** &amp;#039;&amp;#039;&amp;#039;See also&amp;#039;&amp;#039;&amp;#039;: PHP/file/glob ==Links== ===Reference=== * php.net: [https://www.php...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page/PHP/fx}}&lt;br /&gt;
==About==&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039;: lists files that match [[globbing]] rules&lt;br /&gt;
** &#039;&#039;&#039;See also&#039;&#039;&#039;: [[PHP/file/glob]]&lt;br /&gt;
==Links==&lt;br /&gt;
===Reference===&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/function.glob.php glob]()&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx&amp;diff=29399</id>
		<title>PHP/fx</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx&amp;diff=29399"/>
		<updated>2026-05-09T01:42:04Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP native functions}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! fx name || extension? || official docs || summary&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/feof/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039; || [https://www.php.net/manual/en/book.filesystem.php Filesystem] || [https://www.php.net/manual/en/function.feof.php fx] || detects end-of-file on files and some {{l/pfx|PHP/resource/|stream}}s&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/glob/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                         || [https://www.php.net/manual/en/ref.filesystem.php Filesystem Functions] || [https://www.php.net/manual/en/function.glob.php glob]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_connect/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                 || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-connect.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_exec/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                    || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-exec.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_shell/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                   || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-shell.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_context_set_params/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;    || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-context-set-params.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_notification_callback/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039; || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-notification-callback.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_set_blocking/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;          || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-set-blocking.php fx]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/CREATE/USER&amp;diff=29398</id>
		<title>MariaDB/SQL/CREATE/USER</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/CREATE/USER&amp;diff=29398"/>
		<updated>2026-04-26T02:02:24Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|&amp;quot;CREATE USER&amp;quot; SQL command}}&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/kb/en/create-user/ MariaDB Knowledge Base]&lt;br /&gt;
==Related==&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../../DROP/USER|DROP USER]]&amp;lt;/code&amp;gt; deletes specified existing users&lt;br /&gt;
==Example==&lt;br /&gt;
* {{fmt/syntax/inline|SQL|CREATE USER &#039;roundcube&#039;@localhost IDENTIFIED BY &#039;yourPasswordHere!&#039;;}}&lt;br /&gt;
** &#039;&#039;&#039;Note&#039;&#039;&#039;: &amp;lt;code&amp;gt;&#039;roundcube@localhost&#039;&amp;lt;/code&amp;gt; is not the same user as &amp;lt;code&amp;gt;&#039;roundcube&#039;@localhost&amp;lt;/code&amp;gt;. The latter creates user &#039;roundcube&#039; with &#039;@localhost&#039; stored in another field, from what I can tell.&lt;br /&gt;
** &#039;&#039;&#039;Note&#039;&#039;&#039;: &#039;password&#039; and &amp;quot;password&amp;quot; are not necessarily identical. At least once, I got an error with &#039;password&#039; but &amp;quot;password&amp;quot; was fine. The password in question ended with a &#039;^&#039; character, so maybe that was escaping the end-quote-mark or something?&lt;br /&gt;
* {{fmt/syntax/inline|SQL|CREATE USER &#039;wooz-dev-mw&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;}}{{arg|password}}&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/GRANT&amp;diff=29397</id>
		<title>MariaDB/SQL/GRANT</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/GRANT&amp;diff=29397"/>
		<updated>2026-04-26T01:59:04Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Related==&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/same|REVOKE}}&amp;lt;/code&amp;gt; negates privileges granted by &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/same|SHOW GRANTS}}&amp;lt;/code&amp;gt; lists privileges granted by &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt;. (see &amp;lt;code&amp;gt;{{l/same|SHOW}}&amp;lt;/code&amp;gt;)&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/kb/en/grant/ MariaDB Knowledge Base]&lt;br /&gt;
==Example==&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=SQL&amp;gt;GRANT ALL ON `roundcube`.* to &#039;rc-bot&#039;@localhost;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=SQL&amp;gt;GRANT ALL PRIVILEGES ON `woozdev-mw`.* TO &#039;wooz-dev-mw&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;&amp;lt;/syntaxhighlight&amp;gt;{{arg|password}}&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;;&lt;br /&gt;
==Syntax==&lt;br /&gt;
* &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; {{fmt/arg|priv list}} &amp;lt;code&amp;gt;ON&amp;lt;/code&amp;gt; {{fmt/arg|object type}} {{fmt/arg|priv level}} &amp;lt;code&amp;gt;TO&amp;lt;/code&amp;gt; {{fmt/arg|user spec}} [ {{fmt/arg|user options}} ]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|priv list}}&#039;&#039;&#039;: {{fmt/arg|priv_type}} {{fmt/arg/opt|column_list}} [, &#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|priv_type}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;USAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;ALL&amp;lt;/code&amp;gt; [&amp;lt;code&amp;gt;PRIVILEGES&amp;lt;/code&amp;gt;]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|object type}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;TABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;FUNCTION&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;PROCEDURE&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;PACKAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;PACKAGE BODY&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|priv level}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;*.*&amp;lt;/code&amp;gt;&lt;br /&gt;
*** {{fmt/arg|db_name}}&amp;lt;code&amp;gt;.*&amp;lt;/code&amp;gt;&lt;br /&gt;
*** {{fmt/arg|db_name}}&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;{{fmt/arg|tbl_name}}&lt;br /&gt;
*** {{fmt/arg|tbl_name}}&lt;br /&gt;
*** {{fmt/arg|db_name}}&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;{{fmt/arg|routine_name}}&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|user spec}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** {{fmt/arg|username}} {{fmt/arg/opt|authentication option}}&lt;br /&gt;
*** &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|authentication option}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;IDENTIFIED BY&amp;lt;/code&amp;gt; &#039;{{fmt/arg|password}}&#039; &lt;br /&gt;
*** &amp;lt;code&amp;gt;IDENTIFIED BY PASSWORD&amp;lt;/code&amp;gt; &#039;password_hash&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;IDENTIFIED&amp;lt;/code&amp;gt; {&amp;lt;code&amp;gt;VIA&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;WITH&amp;lt;/code&amp;gt;} {{fmt/arg|authentication rule}} [OR &#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|user option}}&#039;&#039;&#039;:  &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;REQUIRE&amp;lt;/code&amp;gt; {&amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt; | {{fmt/arg|TLS option}} [[&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;] &#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
*** [&amp;lt;code&amp;gt;WITH&amp;lt;/code&amp;gt; {{fmt/arg|with option}} [&#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|with option}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** &amp;lt;code&amp;gt;GRANT OPTION&amp;lt;/code&amp;gt;&lt;br /&gt;
*** {{fmt/arg|resource_option}}&lt;br /&gt;
* &amp;lt;code&amp;gt;GRANT&amp;lt;/code&amp;gt; {{fmt/arg|rolename}} &amp;lt;code&amp;gt;TO&amp;lt;/code&amp;gt; {{fmt/arg|grantee}} [, &#039;&#039;repeat...&#039;&#039;] [&amp;lt;code&amp;gt;WITH ADMIN OPTION&amp;lt;/code&amp;gt;]&lt;br /&gt;
** &#039;&#039;&#039;{{fmt/arg|grantee}}&#039;&#039;&#039;: &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
*** {{fmt/arg|rolename}}&lt;br /&gt;
*** {{fmt/arg|username}} {{fmt/arg/opt|authentication option}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29396</id>
		<title>MariaDB/SQL/user</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29396"/>
		<updated>2026-04-26T01:03:42Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|SQL commands for managing user accounts}}&lt;br /&gt;
==Commands==&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../ALTER/]] {{l/pfx|../ALTER/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../GRANT/]]&amp;lt;/code&amp;gt;: grant privileges to user-accounts&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../RENAME/]] USER&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../REVOKE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] DEFAULT ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] SESSION AUTHORIZATION&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
===user security===&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SHOW/]] {{l/pfx|../SHOW/|GRANTS}}&amp;lt;/code&amp;gt;: list all granted privileges (privilege x user)&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SHOW/]] {{l/pfx|../SHOW/|PRIVILEGES}}&amp;lt;/code&amp;gt;: list all defined privilege-types (can be assigned to users)&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/docs/server/reference/sql-statements/account-management-sql-statements Account Management]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29395</id>
		<title>MariaDB/SQL/user</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29395"/>
		<updated>2026-04-26T00:56:19Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|SQL commands for managing user accounts}}&lt;br /&gt;
==Commands==&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../ALTER/]] {{l/pfx|../ALTER/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../GRANT/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../RENAME/]] USER&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../REVOKE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] DEFAULT ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] SESSION AUTHORIZATION&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
===user security===&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SHOW/]] {{l/pfx|../SHOW/|PRIVILEGES}}&amp;lt;/code&amp;gt;: list all defined privilege-types (can be assigned to users)&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/docs/server/reference/sql-statements/account-management-sql-statements Account Management]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29394</id>
		<title>MariaDB/SQL/user</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/user&amp;diff=29394"/>
		<updated>2026-04-26T00:48:30Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|SQL commands for managing user accounts}} ==Commands== * &amp;lt;code&amp;gt;../ALTER/ {{l/pfx|../ALTER/|USER}}&amp;lt;/code&amp;gt; * &amp;lt;code&amp;gt;../CREATE/ {{l/pfx|../CREATE/|ROLE}}&amp;lt;/code...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|SQL commands for managing user accounts}}&lt;br /&gt;
==Commands==&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../ALTER/]] {{l/pfx|../ALTER/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../CREATE/]] {{l/pfx|../CREATE/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|ROLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../DROP/]] {{l/pfx|../DROP/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../GRANT/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../RENAME/]] USER&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../REVOKE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] DEFAULT ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] SESSION AUTHORIZATION&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;[[../SET/]] ROLE&amp;lt;/code&amp;gt;&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/docs/server/reference/sql-statements/account-management-sql-statements Account Management]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/ALTER&amp;diff=29393</id>
		<title>MariaDB/SQL/ALTER</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/ALTER&amp;diff=29393"/>
		<updated>2026-04-26T00:41:50Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|SQL command: &amp;lt;code&amp;gt;ALTER&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Related==&lt;br /&gt;
* This modifies [[../user/]]s created by {{l/same|CREATE}}.&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/kb/en/alter-user/ MariaDB Knowledge Base]&lt;br /&gt;
==Syntax==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: The table below is incomplete.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ALTER USER&amp;lt;/code&amp;gt; [&amp;lt;code&amp;gt;IF EXISTS&amp;lt;/code&amp;gt;]&lt;br /&gt;
: {{fmt/arg|user spec}} [, &#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
: [&amp;lt;code&amp;gt;REQUIRE&amp;lt;/code&amp;gt; {&amp;lt;code&amp;gt;NONE&amp;lt;/code&amp;gt; | {{fmt/arg|TLS option}} [[&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;] &#039;&#039;repeat...&#039;&#039;]}]&lt;br /&gt;
: [&amp;lt;code&amp;gt;WITH&amp;lt;/code&amp;gt; {{fmt/arg|resource option}} [&#039;&#039;repeat...&#039;&#039;]]&lt;br /&gt;
: {{fmt/arg/opt|lock option}} {{fmt/arg/opt|password option}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! argument name || value(s)&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|user spec}}&#039;&#039;&#039; || {{fmt/arg|username}} {{fmt/arg/opt|auth option}}&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|auth option}}&#039;&#039;&#039;&amp;lt;br&amp;gt;(authentication option) || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;IDENTIFIED BY &#039;&amp;lt;/code&amp;gt;{{fmt/arg|password}}&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;IDENTIFIED BY PASSWORD &#039;&amp;lt;/code&amp;gt;{{fmt/arg|password hash}}&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;IDENTIFIED&amp;lt;/code&amp;gt; {&amp;lt;code&amp;gt;VIA&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;WITH&amp;lt;/code&amp;gt;} {{fmt/arg|authentication rule}} [&amp;lt;code&amp;gt;OR&amp;lt;/code&amp;gt; &#039;&#039;repeat...&#039;&#039;]&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|resource option}}&#039;&#039;&#039; || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;MAX_QUERIES_PER_HOUR&amp;lt;/code&amp;gt; {{fmt/arg|count}}&lt;br /&gt;
* &amp;lt;code&amp;gt;MAX_UPDATES_PER_HOUR&amp;lt;/code&amp;gt; {{fmt/arg|count}}&lt;br /&gt;
* &amp;lt;code&amp;gt;MAX_CONNECTIONS_PER_HOUR&amp;lt;/code&amp;gt; {{fmt/arg|count}}&lt;br /&gt;
* &amp;lt;code&amp;gt;MAX_USER_CONNECTIONS&amp;lt;/code&amp;gt; {{fmt/arg|count}}&lt;br /&gt;
* &amp;lt;code&amp;gt;MAX_STATEMENT_TIME&amp;lt;/code&amp;gt; {{fmt/arg|time}}&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|lock option}}&#039;&#039;&#039; || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACCOUNT LOCK&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ACCOUNT UNLOCK&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|password option}}&#039;&#039;&#039; || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;PASSWORD EXPIRE&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;PASSWORD EXPIRE DEFAULT&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;PASSWORD EXPIRE NEVER&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;PASSWORD EXPIRE INTERVAL N DAY&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|authentication rule}}&#039;&#039;&#039; || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* {{fmt/arg|authentication plugin}}&lt;br /&gt;
* {{fmt/arg|authentication plugin}} {&amp;lt;code&amp;gt;USING&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;AS&amp;lt;/code&amp;gt;} &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;{{fmt/arg|authentication string}}&amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* {{fmt/arg|authentication plugin}} {&amp;lt;code&amp;gt;USING&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;AS&amp;lt;/code&amp;gt;} &amp;lt;code&amp;gt;PASSWORD(&#039;&amp;lt;/code&amp;gt;{{fmt/arg|password}}&amp;lt;code&amp;gt;&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| valign=top | &#039;&#039;&#039;{{fmt/arg|authentication plugin}}&#039;&#039;&#039; || &#039;&#039;one of &amp;amp;ndash;&#039;&#039;&lt;br /&gt;
* {{fmt/arg|authentication plugin}} {&amp;lt;code&amp;gt;USING&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;AS&amp;lt;/code&amp;gt;} &#039;{{fmt/arg|authentication string}}&#039;&lt;br /&gt;
* {{fmt/arg|authentication plugin}} {&amp;lt;code&amp;gt;USING&amp;lt;/code&amp;gt;|&amp;lt;code&amp;gt;AS&amp;lt;/code&amp;gt;} &amp;lt;code&amp;gt;PASSWORD(&#039;&amp;lt;/code&amp;gt;{{fmt/arg|password}}&amp;lt;code&amp;gt;&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
==Example==&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=SQL&amp;gt;ALTER USER &#039;rc-bot&#039;@localhost IDENTIFIED BY &#039;YourPassword!&#039;;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL/SHOW&amp;diff=29392</id>
		<title>MariaDB/SQL/SHOW</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL/SHOW&amp;diff=29392"/>
		<updated>2026-04-26T00:40:01Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|SQL command: &amp;lt;code&amp;gt;SHOW&amp;lt;/code&amp;gt;}} ==Reference== * [https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/show/about-show About SHOW...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|SQL command: &amp;lt;code&amp;gt;SHOW&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Reference==&lt;br /&gt;
* [https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/show/about-show About SHOW]: brief overview&lt;br /&gt;
* [https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/show SHOW Statements]: list of &amp;lt;code&amp;gt;SHOW&amp;lt;/code&amp;gt; subcommands&lt;br /&gt;
==Subcommands==&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/ANALYZE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/AUTHORS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/BINARY LOGS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/BINLOG EVENTS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/MASTER STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/CHARACTER SET/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/CLIENT_STATISTICS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/COLLATION/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/COLUMNS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/CONTRIBUTORS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/CREATE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|DATABASE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|EVENT}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|FUNCTION}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|PACKAGE BODY}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|PACKAGE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|PROCEDURE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|SEQUENCE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|SERVER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|TABLE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|TRIGGER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|USER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;{{l/pfx|/CREATE/|VIEW}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/DATABASES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/ENGINE INNODB STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/ENGINE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/ENGINES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/ERRORS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/EVENTS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/EXPLAIN/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/FUNCTION CODE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/FUNCTION STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/GRANTS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/INDEX_STATISTICS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/INDEX/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW INNODB STATUS&amp;lt;/code&amp;gt; (removed)&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/LOCALES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/OPEN TABLES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PACKAGE BODY STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PACKAGE STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PLUGINS SONAME/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PLUGINS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PRIVILEGES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PROCEDURE CODE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PROCEDURE STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PROCESSLIST/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PROFILE/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/PROFILES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/QUERY_RESPONSE_TIME/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/RELAYLOG EVENTS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/REPLICA HOSTS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/REPLICA STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/TABLE_STATISTICS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/TABLE STATUS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/TABLES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/TRIGGERS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/USER_STATISTICS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/USER_VARIABLES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/VARIABLES/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/WARNINGS/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/WSREP_MEMBERSHIP/]]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;SHOW [[/WSREP_STATUS/]]&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MariaDB/SQL&amp;diff=29391</id>
		<title>MariaDB/SQL</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MariaDB/SQL&amp;diff=29391"/>
		<updated>2026-04-26T00:20:45Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Commands==&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|ALTER}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|CREATE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|DESCRIBE}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|DROP}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|GRANT}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|INSERT}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|SELECT}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|SET}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|SHOW}}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/sub|USE}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Fujitsu/fi/6130Z&amp;diff=29390</id>
		<title>Fujitsu/fi/6130Z</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Fujitsu/fi/6130Z&amp;diff=29390"/>
		<updated>2026-04-12T14:14:30Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:hardware]]&lt;br /&gt;
[[category:document scanner]]&lt;br /&gt;
[[File:IMG 20260216 134015199 MF PORTRAIT.Fujitsu fi-6130Z.crop.jpg|thumb|this model set up for use]]&lt;br /&gt;
==Notes==&lt;br /&gt;
The magic command for getting this to scan longer documents:&lt;br /&gt;
 [[scanimage]] -d &amp;quot;fujitsu:fi-6130Zdj:438796&amp;quot; --format=jpeg --page-height 879 &amp;gt; {{fmt/arg|filename}}.jpg&lt;br /&gt;
&lt;br /&gt;
However, it still seems to have a length-limit.&lt;br /&gt;
&lt;br /&gt;
Note that the above command defaults to monochrome; to get color, add &amp;lt;code&amp;gt;--mode color&amp;lt;/code&amp;gt; before the &amp;quot;&amp;amp;gt;&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx/proc_open&amp;diff=29389</id>
		<title>PHP/fx/proc open</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx/proc_open&amp;diff=29389"/>
		<updated>2026-03-30T20:29:46Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP function: &amp;lt;code&amp;gt;proc_open()&amp;lt;/code&amp;gt;}} ==Links== ===Official=== * php.net: [https://www.php.net/manual/en/function.proc-open.php proc_open]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP function: &amp;lt;code&amp;gt;proc_open()&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/function.proc-open.php proc_open]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib/SSH2&amp;diff=29388</id>
		<title>PHP/lib/SSH2</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/SSH2&amp;diff=29388"/>
		<updated>2026-03-27T00:33:20Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP remote operations via SSH}} ==About== The SSH2 library provides a pretty comprehensive way of managing remote operations over an ssh connection. ==Pages==...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP remote operations via SSH}}&lt;br /&gt;
==About==&lt;br /&gt;
The SSH2 library provides a pretty comprehensive way of managing remote operations over an [[ssh]] connection.&lt;br /&gt;
==Pages==&lt;br /&gt;
A few key functions, to start with:&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|ssh2_connect}}()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|ssh2_exec}}()&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|ssh2_shell}}()&amp;lt;/code&amp;gt;&lt;br /&gt;
==Links==&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/book.ssh2.php Secure Shell2]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29387</id>
		<title>PHP/lib/proc</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29387"/>
		<updated>2026-03-27T00:28:25Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP local process management}}&lt;br /&gt;
==About==&lt;br /&gt;
This is probably the most basic of the local process-management libraries&amp;lt;ref name=popen /&amp;gt;; I&#039;m not sure if that&#039;s a fair description because I haven&#039;t tried any of the other possibly-overlapping libraries yet (see [https://www.php.net/manual/en/refs.fileprocess.process.php Process Control Extensions]).&lt;br /&gt;
==Model==&lt;br /&gt;
* A process is opened by executing a command via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-open.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* While it is open:&lt;br /&gt;
** it may send output through &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt; (information) or &amp;lt;code&amp;gt;stderr&amp;lt;/code&amp;gt; (error messages)&lt;br /&gt;
** it may receive input via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Its status may be obtained via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_get_status}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-get-status.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** Its priority is modifiable via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_nice}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-nice.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** It may be terminated via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_close}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-close.php php]&amp;lt;/sup&amp;gt; (which waits politely for the process to be done) or &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_​terminate}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-terminate.php php]&amp;lt;/sup&amp;gt; (which forces the issue).&lt;br /&gt;
&lt;br /&gt;
Unlike [[../SSH2/]], this library does not have a concept of opening a process without first executing a command; the command is the process. Each command opened with &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt; is like a separate terminal session. In order to maintain any kind of persistent session-state across multiple commands, you have to first run some kind of wrapper-command like &amp;quot;{{l/cmd|bash}}&amp;quot; or &amp;quot;{{l/cmd|script}}&amp;quot; and then transmit additional commands &#039;&#039;to that wrapper-command&#039;&#039; via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. (The meaning of those additional commands will, of course, depend entirely on how the wrapper-command interprets them.)&lt;br /&gt;
==Links==&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/book.exec.php System program execution]&lt;br /&gt;
==Footnote==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=popen&amp;gt;I&#039;m not counting &amp;lt;code&amp;gt;[https://www.php.net/manual/en/function.popen.php popen]()&amp;lt;/code&amp;gt; because that doesn&#039;t allow dialogue with the process; it just runs it and hands you a pipe-stream for either the process&#039;s output &#039;&#039;or&#039;&#039; your input to it.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29386</id>
		<title>PHP/lib/proc</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib/proc&amp;diff=29386"/>
		<updated>2026-03-27T00:23:23Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP local process management}} ==About== This is probably the most basic of the local process-management libraries; I&amp;#039;m not sure if that&amp;#039;s a fair description becau...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP local process management}}&lt;br /&gt;
==About==&lt;br /&gt;
This is probably the most basic of the local process-management libraries; I&#039;m not sure if that&#039;s a fair description because I haven&#039;t tried any of the other possibly-overlapping libraries yet (see [https://www.php.net/manual/en/refs.fileprocess.process.php Process Control Extensions]).&lt;br /&gt;
==Model==&lt;br /&gt;
* A process is opened by executing a command via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-open.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* While it is open:&lt;br /&gt;
** it may send output through &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt; (information) or &amp;lt;code&amp;gt;stderr&amp;lt;/code&amp;gt; (error messages)&lt;br /&gt;
** it may receive input via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;&lt;br /&gt;
** Its status may be obtained via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_get_status}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-get-status.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** Its priority is modifiable via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_nice}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-nice.php php]&amp;lt;/sup&amp;gt;.&lt;br /&gt;
** It may be terminated via &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_close}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-close.php php]&amp;lt;/sup&amp;gt; (which waits politely for the process to be done) or &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_​terminate}}()&amp;lt;/code&amp;gt;&amp;lt;sup&amp;gt;[https://www.php.net/manual/en/function.proc-terminate.php php]&amp;lt;/sup&amp;gt; (which forces the issue).&lt;br /&gt;
&lt;br /&gt;
Unlike [[../SSH2/]], this library does not have a concept of opening a process without first executing a command; the command is the process. Each command opened with &amp;lt;code&amp;gt;{{l/pfx|PHP/fx/|proc_open}}()&amp;lt;/code&amp;gt; is like a separate terminal session. In order to maintain any kind of persistent session-state across multiple commands, you have to first run some kind of wrapper-command like &amp;quot;{{l/cmd|bash}}&amp;quot; or &amp;quot;{{l/cmd|script}}&amp;quot; and then transmit additional commands &#039;&#039;to that wrapper-command&#039;&#039; via &amp;lt;code&amp;gt;stdin&amp;lt;/code&amp;gt;. (The meaning of those additional commands will, of course, depend entirely on how the wrapper-command interprets them.)&lt;br /&gt;
==Links==&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/book.exec.php System program execution]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/lib&amp;diff=29385</id>
		<title>PHP/lib</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/lib&amp;diff=29385"/>
		<updated>2026-03-26T23:58:01Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP extensions library}} ==Pages== * /proc/: running &amp;amp; managing local processes * /SSH2/: operating on a remote system via ssh ==Links== * [https://www...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP extensions library}}&lt;br /&gt;
==Pages==&lt;br /&gt;
* [[/proc/]]: running &amp;amp; managing local processes&lt;br /&gt;
* [[/SSH2/]]: operating on a remote system via [[ssh]]&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.php.net/manual/en/extensions.php php.net]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP&amp;diff=29384</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP&amp;diff=29384"/>
		<updated>2026-03-26T23:50:27Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::computer language]]&lt;br /&gt;
[[language type::interpreted]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;&lt;br /&gt;
==About==&lt;br /&gt;
[[PHP]] is an interpreted programming language most commonly used in web sites. It is the language in which the [[MediaWiki]], [[WordPress]], [[Drupal]], and [[ZenCart]] web software packages, among many others, are written.&lt;br /&gt;
&lt;br /&gt;
Note that much of the information on this page is somewhat outdated; PHP continues to be actively developed and improved.&lt;br /&gt;
===subpages===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! subpage name || type || about&lt;br /&gt;
{{!-!}} [[/arrays/]] || concept&lt;br /&gt;
{{!-!}} [[/CLI/]] || how-to || using PHP from a [[command line interface]]&lt;br /&gt;
{{!-!}} [[/criticism/]] || community || why PHP is bad&lt;br /&gt;
{{!-!}} [[/debugging/]] || how-to || especially [[/debugging/interactive|/interactive]]&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/declare/]]()&amp;lt;/code&amp;gt;: altering PHP behavior within a file, including strict typing&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/enum/]]&amp;lt;/code&amp;gt; || type/concept&lt;br /&gt;
{{!-!}} [[/file/]]-handling || how-to&lt;br /&gt;
{{!-!}} [[/frameworks/]]&lt;br /&gt;
{{!-!}} [[/function variable/]]: a variable can be a reference to a function&lt;br /&gt;
{{!-!}} [[/fx/]]: function documentation/notes&lt;br /&gt;
{{!-!}} [[/GUI/]]: graphical interface programming in PHP&lt;br /&gt;
{{!-!}} [[/installing/]]&lt;br /&gt;
{{!-!}} [[/inheritance/]] || syntax || rules&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/interface/]]&amp;lt;/code&amp;gt; || keyword&lt;br /&gt;
{{!-!}} [[/lib/]]raries || concept: collections of related functions that are provided as add-on modules&lt;br /&gt;
{{!-!}} [[/namespace/]]s || keyword/concept&lt;br /&gt;
{{!-!}} [[/operator/]]s || syntax || there are some relatively obscure ones that aren&#039;t well-indexed in the official documentation&lt;br /&gt;
{{!-!}} [[/referencing/]]: how variable references work&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/ReflectionClass/]]&amp;lt;/code&amp;gt; || native class || especially &amp;lt;code&amp;gt;[[/ReflectionClass/getParentClass|ReflectionClass::getParentClass]]()&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/resource/]]&amp;lt;/code&amp;gt; || syntax/concept&lt;br /&gt;
{{!-!}} {{l/pfx|/resource/|stream}} || a particular type of resource&lt;br /&gt;
{{!-!}} [[/string/]] || type/functions&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/trait/]]&amp;lt;/code&amp;gt; || keyword/concept || including &amp;quot;[[/trait/use|use]]&amp;quot; in the context of traits&lt;br /&gt;
{{!-!}} [[/type declaration/]]&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/use/]]&amp;lt;/code&amp;gt; || keyword || &amp;quot;use&amp;quot; has 3 different meanings in PHP&lt;br /&gt;
{{!-!}} [[/XML/]] || libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Apache and PHP]]: getting the two of them to work together nicely&lt;br /&gt;
* [[Perl vs. PHP]]: comparisons between the two languages&lt;br /&gt;
* [[register_globals]]&lt;br /&gt;
===offsite===&lt;br /&gt;
* [[wooz:2021/11/25/PHP documentation gripe]]: a misunderstanding about type-compatibility in method overrrides&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===Reference===&lt;br /&gt;
* [http://php.net/ Web]&lt;br /&gt;
** [http://php.net/manual/ Manual]&lt;br /&gt;
*** [http://php.net/manual/en/langref.php Language Reference]&lt;br /&gt;
**** [http://php.net/manual/en/language.constants.predefined.php Magic constants]&lt;br /&gt;
**** [https://www.php.net/manual/en/language.namespaces.rules.php Name resolution rules]&lt;br /&gt;
**** parameter types: [http://php.net/manual/en/functions.arguments.php Function arguments] (aka type hinting)&lt;br /&gt;
**** [https://www.php.net/manual/en/reserved.variables.php Predefined variables]&lt;br /&gt;
* {{wikipedia}}&lt;br /&gt;
&lt;br /&gt;
===Social===&lt;br /&gt;
* [https://twitter.com/official_php Twitter]&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
* [https://www.phptherightway.com/ PHP The Right Way]: good practices and patterns&lt;br /&gt;
* [http://www.hardened-php.net/ Hardened PHP]: patches to improve PHP security&lt;br /&gt;
* [https://3v4l.org/ 3v4l.org] &amp;quot;is an online shell that allows you to run your code on my server. I compiled more than 200 different PHP versions (every version released since 4.3.0) plus HHVM for you to use.&amp;quot;&lt;br /&gt;
====Development Tools====&lt;br /&gt;
* [http://phpundercontrol.org/ phpUnderControl] - &amp;quot;Continuous Integration for PHP&amp;quot;&lt;br /&gt;
====Users Groups====&lt;br /&gt;
* [http://www.tripug.org/ Triangle PHP Users Group]: [[The Triangle, NC]]&lt;br /&gt;
====Coding Resources====&lt;br /&gt;
* [[PEAR]] (PHP Extension and Application Repository):&lt;br /&gt;
** [http://pear.php.net/ Official]&lt;br /&gt;
** {{wikipedia|PEAR}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Mount_Zion_Christian_Church/NC/Durham&amp;diff=29383</id>
		<title>Mount Zion Christian Church/NC/Durham</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Mount_Zion_Christian_Church/NC/Durham&amp;diff=29383"/>
		<updated>2026-03-24T16:49:50Z</updated>

		<summary type="html">&lt;p&gt;Woozle: removing mention of David Burnette&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::church]]&lt;br /&gt;
[[thing type::address]] (until there&#039;s a separate article about the building)&lt;br /&gt;
[[religion::Christianity]]&lt;br /&gt;
[[location::US/NC/Durham]]&lt;br /&gt;
[[category:US/NC/Durham]]&lt;br /&gt;
[[category:organizations]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;&lt;br /&gt;
==About==&lt;br /&gt;
[[Mount Zion Christian Church/NC/Durham]] (MZCC) is a Christian church in [[Durham, NC]]. It also appears to be the headquarters for a number of other churches around [[North Carolina]] (and possibly other states), all named &amp;quot;[[Mount Zion Christian Church]]&amp;quot;, although there are other churches using this name which do not appear to be affiliated.&lt;br /&gt;
&lt;br /&gt;
It is located at [[US/NC/Durham/roads/Fayetteville/3519|3519]] [[US/NC/Durham/roads/Fayetteville|Fayetteville Road]], {{zipcode|27707}}, where a number of other related organizations appear to be based as well.&lt;br /&gt;
&lt;br /&gt;
MZCC is headed by Pastor [[Donald Q. Fozard Sr.]] and his wife, Prophetess [[Nora L. Fozard]].&lt;br /&gt;
&lt;br /&gt;
MZCC is the home of the [[issuepedia:Durham MZCC abortion truck|Durham MZCC abortion truck]].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===Reference===&lt;br /&gt;
* [http://mzccdurham.org/ official web site]&lt;br /&gt;
* {{issuepedia}}: the church recently hosted a lurid anti-abortion truck, and its pastor is hugely homophobic&lt;br /&gt;
* [http://triangle.citysearch.com/profile/6202484/durham_nc/mt_zion_christian_church.html listing at CitySearch]&lt;br /&gt;
&lt;br /&gt;
===News===&lt;br /&gt;
* &#039;&#039;&#039;2001-03-08&#039;&#039;&#039; [http://espn.go.com/magazine/feldman_20010308.html Praise the Lord, shoot the rock]&lt;br /&gt;
* [http://espn.go.com/magazine/vol4no06mtzion.html Midnight Run]: some history about MZCC&#039;s basketballing (article possibly dated 2002-03-19, but can&#039;t be sure)&lt;br /&gt;
===Videos===&lt;br /&gt;
* &#039;&#039;&#039;2008-02-04&#039;&#039;&#039; [[youtube:S3KP0QjF7rM|Pastor Fozard - Mount Zion Christian Church]]: an introduction to the church, according to the video&#039;s description&lt;br /&gt;
===Lawsuits===&lt;br /&gt;
* &#039;&#039;&#039;2008-04-01&#039;&#039;&#039; [http://www.aoc.state.nc.us/www/public/coa/opinions/2008/unpub/071221-1.htm Jack vs. Mt. Zion]&lt;br /&gt;
==Notes==&lt;br /&gt;
Is there possibly a family connection between these Fozards and Anthony (Tony) Fozard of a Mt. Zion in Maryland? See [http://weblogs.baltimoresun.com/sports/college/maryland_terps/blog/2007/08/terrence_jennings_and_john_luc.html Tracking the Terps] &#039;&#039;&#039;Update&#039;&#039;&#039;: Yes, according to [http://espn.go.com/magazine/feldman_20010308.html this], Anthony is Don&#039;s son. Also, &amp;quot;His best friend, Durham businessman Okin Billow, is married to the daughter of the president of [[Nigeria]].&amp;quot;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=David_Burnette&amp;diff=29382</id>
		<title>David Burnette</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=David_Burnette&amp;diff=29382"/>
		<updated>2026-03-24T16:46:49Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Replaced content with &amp;quot;{{to htwiki}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{to htwiki}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Template:to_htwiki&amp;diff=29381</id>
		<title>Template:to htwiki</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Template:to_htwiki&amp;diff=29381"/>
		<updated>2026-03-24T16:46:25Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;&amp;lt;includeonly&amp;gt; category:moved category:moved to htwiki &amp;lt;/includeonly&amp;gt;&amp;lt;center&amp;gt;&amp;lt;big&amp;gt; 64px This page has been htwiki:{{{1|{{PAGENAME}}}}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[category:moved]]&lt;br /&gt;
[[category:moved to htwiki]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:htwiki-logo-passion.png|64px]] This page has been [[htwiki:{{{1|{{PAGENAME}}}}}|moved]] to The &#039;&#039;&#039;HypertWiki&#039;&#039;&#039;. [[File:htwiki-logo-passion.png|64px]]&lt;br /&gt;
&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=File:htwiki-logo-passion.png&amp;diff=29380</id>
		<title>File:htwiki-logo-passion.png</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=File:htwiki-logo-passion.png&amp;diff=29380"/>
		<updated>2026-03-24T16:44:24Z</updated>

		<summary type="html">&lt;p&gt;Woozle: copied from htwiki for use in &amp;quot;moved to&amp;quot; template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
copied from htwiki for use in &amp;quot;moved to&amp;quot; template&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=US/NC/Durham/neighborhoods/Pinecrest_Road&amp;diff=29379</id>
		<title>US/NC/Durham/neighborhoods/Pinecrest Road</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=US/NC/Durham/neighborhoods/Pinecrest_Road&amp;diff=29379"/>
		<updated>2026-03-24T16:30:29Z</updated>

		<summary type="html">&lt;p&gt;Woozle: link no longer seems appropriate (moving target page to htwiki)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
The &amp;quot;Pinecrest Road Neighborhood&amp;quot; is an informal association of residents of the &amp;quot;old&amp;quot; section of [[US/NC/Durham/roads/Pinecrest|Pinecrest Road]] in [[Durham, NC]]. There is a Yahoo Groups mailing list where these residents frequently exchange advice and news.&lt;br /&gt;
&lt;br /&gt;
To the best of [[User:Woozle|my]] knowledge, residents of the &amp;quot;new&amp;quot; Pinecrest Road have never expressed an interest in being involved with the &amp;quot;old&amp;quot; section, but this is understandable because of the rather difficult geographic barrier posed by the dangerous intersection at 751. (As far as I know, those residents do not have their own group or mailing list.)&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://groups.yahoo.com/group/pinecrestrd/ pinecrestrd on Yahoo Groups]&lt;br /&gt;
==Pages==&lt;br /&gt;
* [[/block party]]: an annual event since the dawn of prehistory (early 1980s)&lt;br /&gt;
* [[/scrapbook]]&lt;br /&gt;
* [[/crime]]&lt;br /&gt;
* [[/speed humps]]&lt;br /&gt;
* [[/parking]]&lt;br /&gt;
===Related===&lt;br /&gt;
* [[Duke Forest home sales#Pinecrest_Rd.]]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx&amp;diff=29378</id>
		<title>PHP/fx</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx&amp;diff=29378"/>
		<updated>2026-03-23T15:30:33Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP native functions}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! fx name || extension? || official docs || summary&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/feof/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039; || [https://www.php.net/manual/en/book.filesystem.php Filesystem] || [https://www.php.net/manual/en/function.feof.php fx] || detects end-of-file on files and some {{l/pfx|PHP/resource/|stream}}s&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_connect/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                 || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-connect.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_exec/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                    || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-exec.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/ssh2_shell/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;                   || [https://www.php.net/manual/en/book.ssh2.php SSH2]      || [https://www.php.net/manual/en/function.ssh2-shell.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_context_set_params/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;    || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-context-set-params.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_notification_callback/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039; || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-notification-callback.php fx]&lt;br /&gt;
{{!-!}} &#039;&#039;&#039;&amp;lt;code&amp;gt;[[/stream_set_blocking/]]()&amp;lt;/code&amp;gt;&#039;&#039;&#039;          || [https://www.php.net/manual/en/book.stream.php Streams] || [https://www.php.net/manual/en/function.stream-set-blocking.php fx]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx/ssh2_shell&amp;diff=29377</id>
		<title>PHP/fx/ssh2 shell</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx/ssh2_shell&amp;diff=29377"/>
		<updated>2026-03-23T15:26:20Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_shell()&amp;lt;/code&amp;gt;}} ==Links== ===Official=== * php.net: [https://www.php.net/manual/en/function.ssh2-shell.php ssh2_​shell]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_shell()&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/function.ssh2-shell.php ssh2_​shell]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx/ssh2_exec&amp;diff=29376</id>
		<title>PHP/fx/ssh2 exec</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx/ssh2_exec&amp;diff=29376"/>
		<updated>2026-03-23T15:24:32Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_exec()&amp;lt;/code&amp;gt;}} ==Links== ===Official=== * php.net: [https://www.php.net/manual/en/function.ssh2-exec.php ssh2_exec]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_exec()&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/function.ssh2-exec.php ssh2_exec]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/fx/ssh2_connect&amp;diff=29375</id>
		<title>PHP/fx/ssh2 connect</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/fx/ssh2_connect&amp;diff=29375"/>
		<updated>2026-03-23T15:21:41Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_connect()&amp;lt;/code&amp;gt;}} ==Links== ===Official=== * php.net: [https://www.php.net/manual/en/function.ssh2-connect.php ssh2_connect]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP function: &amp;lt;code&amp;gt;ssh2_connect()&amp;lt;/code&amp;gt;}}&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* php.net: [https://www.php.net/manual/en/function.ssh2-connect.php ssh2_connect]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/referencing&amp;diff=29374</id>
		<title>PHP/referencing</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/referencing&amp;diff=29374"/>
		<updated>2026-03-18T15:18:10Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In PHP, a variable can be accessed either by &#039;&#039;value&#039;&#039; or by &#039;&#039;reference&#039;&#039;. All PHP variables are references; the question is what you&#039;re accessing &amp;amp;ndash; the location of the value or what&#039;s stored there. By default, you&#039;re accessing the value; referencing syntax allows you to refer to the location instead. Unlike with a pointer, however, the location&#039;s address is never accessible to PHP code; it can only be copied.&lt;br /&gt;
==Concepts==&lt;br /&gt;
Each variable in PHP is a reference to a storage location; the details of this are generally hidden. When one variable is assigned a &#039;&#039;reference&#039;&#039; to another (rather than just the value) they then &#039;&#039;both refer to the same storage location&#039;&#039;. This storage location will continue to exist as long as at least one variable is using it.&lt;br /&gt;
&lt;br /&gt;
References do allow some of the functionality provided by pointers in other languages (like C/C++), but unlike pointers they are always de-referenced from the standpoint of the PHP code. A better analogy (the PHP manual [https://www.php.net/manual/en/language.references.whatare.php agrees]) is to think of them like hard file links in Unix. Conceptually, &amp;lt;code&amp;gt;$b = &amp;amp;$a&amp;lt;/code&amp;gt; means &amp;quot;$b and $a now point to the same content&amp;quot;, &#039;&#039;not&#039;&#039; &amp;quot;$b is a pointer to $a&#039;s content&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A better cognitive model&#039;&#039;&#039;, perhaps, is to think of &amp;quot;&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt;&amp;quot; as what they look like &amp;amp;mdash; different operations:&lt;br /&gt;
* &amp;lt;code&amp;gt;$A = $B&amp;lt;/code&amp;gt; copies $B&#039;s &#039;&#039;&#039;holder contents&#039;&#039;&#039; to $A, so $A and $B have the same value.&lt;br /&gt;
* &amp;lt;code&amp;gt;$A =&amp;amp; $B&amp;lt;/code&amp;gt; copies $B&#039;s &#039;&#039;&#039;holder address&#039;&#039;&#039; to $A, so $A and $B use the same value-holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Yet another way to look at it:&#039;&#039;&#039; If you think of &#039;&#039;all&#039;&#039; variables in PHP as being {{l/wp|Pointer (computer programming)|pointers}}, then &amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt; is the only operator which acts directly on the address in each pointer variable; all the others automatically dereference any variables they touch.&lt;br /&gt;
* Given this, referring to the &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; syntax as &amp;quot;referencing&amp;quot; is actually kind of backwards; it would be more accurately called &amp;quot;dereferencing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Clarification==&lt;br /&gt;
There are no reference &#039;&#039;types&#039;&#039; (you can&#039;t declare, for example, &amp;lt;code&amp;gt;&amp;amp;array&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;int&amp;lt;/code&amp;gt; variables or return values); there are only reference &#039;&#039;operations&#039;&#039; -- and the reference operation is basically a qualifier (indicated by &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;) on a variable-access.&lt;br /&gt;
&lt;br /&gt;
This is seemingly at odds with the fact that functions which return references are declared using the &amp;quot;&amp;amp;&amp;quot; prefix on the &#039;&#039;function name&#039;&#039; rather than on the &#039;&#039;return variable&#039;&#039;, but if you think of &amp;quot;return&amp;quot; as a function which returns a reference whenever one is available (i.e. when returning a variable) and only reverts to returning a value when that&#039;s all it&#039;s got, then it makes more sense. The function having returned a reference, you want to be sure to capture that (and not just the value) by using &amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
===correct===&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=php inline&amp;gt;$w =&amp;amp; $v;&amp;lt;/syntaxhighlight&amp;gt;// after this line, setting $v or $w now sets the other too &amp;amp;ndash; because they&#039;re both using the same memory-space&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=php inline&amp;gt;function &amp;amp;Ref(&amp;amp;$a) { $b=$a; return $b; }&amp;lt;/syntaxhighlight&amp;gt;// Ref() returns a reference to whatever variable is passed as $a&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=php inline&amp;gt;$y =&amp;amp; Ref($x);&amp;lt;/syntaxhighlight&amp;gt;// after this line, setting $x or $y now sets the other too &amp;amp;ndash; because they&#039;re both using the same memory-space&lt;br /&gt;
&lt;br /&gt;
===wrong===&lt;br /&gt;
* &amp;lt;code&amp;gt;function &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;ef(&amp;amp;$a) { $b=$a; return $b; }&amp;lt;/code&amp;gt; - missing &amp;quot;&amp;amp;&amp;quot; before &amp;quot;Ref&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;function &amp;amp;Ref(&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt;a) { $b=$a; return $b; }&amp;lt;/code&amp;gt; - missing &amp;quot;&amp;amp;&amp;quot; before &amp;quot;$a&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;function &amp;amp;Ref(&amp;amp;$a) { $b=$a; return &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;&amp;amp;&amp;lt;/span&amp;gt;$b; }&amp;lt;/code&amp;gt; - extra &amp;quot;&amp;amp;&amp;quot; after &amp;quot;return&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Basics==&lt;br /&gt;
To copy (assign) a reference instead of a value, use the &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; operator when referring to the source variable:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
$vtest = &#039;test value&#039;;&lt;br /&gt;
$vref = &amp;amp;$vtest;&lt;br /&gt;
echo &amp;quot;VTEST: &amp;quot;;&lt;br /&gt;
var_dump($vtest);&lt;br /&gt;
echo &#039;&amp;lt;br&amp;gt;&#039;;&lt;br /&gt;
echo &amp;quot;VREF: &amp;quot;;&lt;br /&gt;
var_dump($vref);&lt;br /&gt;
echo &#039;&amp;lt;br&amp;gt;&#039;;&lt;br /&gt;
$vref = &#039;another test&#039;;&lt;br /&gt;
echo &amp;quot;VTEST: &amp;quot;;&lt;br /&gt;
var_dump($vtest);&lt;br /&gt;
echo &#039;&amp;lt;br&amp;gt;&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;poem&amp;gt;&lt;br /&gt;
VTEST: string(10) &amp;quot;test value&amp;quot;&lt;br /&gt;
VREF: string(10) &amp;quot;test value&amp;quot;&lt;br /&gt;
VTEST: string(12) &amp;quot;another test&amp;quot;&lt;br /&gt;
&amp;lt;/poem&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
This illustrates some key points:&lt;br /&gt;
* The &amp;lt;code&amp;gt;var_dump()&amp;lt;/code&amp;gt; function can&#039;t tell the difference between a variable that was given a reference and one that was given a value.&lt;br /&gt;
** ...because there isn&#039;t one, actually.&lt;br /&gt;
* Writing a value to a variable that contains a reference overwrites the value of the reference target, rather than replacing the reference.&lt;br /&gt;
** This is kind of essential to how references work: spooky action at a distance, basically.&lt;br /&gt;
** &amp;lt;s&amp;gt;This also implies that the only way to change a reference-holding variable directly is to assign it a new reference or &amp;lt;code&amp;gt;unset()&amp;lt;/code&amp;gt; it.&amp;lt;/s&amp;gt;&lt;br /&gt;
*** Actually, I think if you use &amp;lt;code&amp;gt;=&amp;amp;&amp;lt;/code&amp;gt;, that should update the reference? To be checked.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.php.net/manual/en/language.references.php References Explained]&lt;br /&gt;
* [https://www.php.net/manual/en/language.operators.assignment.php#language.operators.assignment.reference Assignment Operators: Assignment by Reference]&lt;br /&gt;
* [https://www.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference Function arguments: Passing arguments by reference]&lt;br /&gt;
* [https://www.php.net/manual/en/functions.returning-values.php Returning values]: see &amp;quot;Example #3 Returning a reference from a function&amp;quot;&lt;br /&gt;
* [https://www.php.net/manual/en/language.oop5.references.php Objects and references]: they&#039;re not handled quite the same&lt;br /&gt;
** In PHP 8.4, at least, objects passed to a function and then modified within the function do &#039;&#039;not&#039;&#039; seem to affect the original.&lt;br /&gt;
** short explanation: objects are looked up in a different table from references&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP&amp;diff=29373</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP&amp;diff=29373"/>
		<updated>2026-03-16T01:28:20Z</updated>

		<summary type="html">&lt;p&gt;Woozle: /* subpages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::computer language]]&lt;br /&gt;
[[language type::interpreted]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;&lt;br /&gt;
==About==&lt;br /&gt;
[[PHP]] is an interpreted programming language most commonly used in web sites. It is the language in which the [[MediaWiki]], [[WordPress]], [[Drupal]], and [[ZenCart]] web software packages, among many others, are written.&lt;br /&gt;
&lt;br /&gt;
Note that much of the information on this page is somewhat outdated; PHP continues to be actively developed and improved.&lt;br /&gt;
===subpages===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! subpage name || type || about&lt;br /&gt;
{{!-!}} [[/arrays/]] || concept&lt;br /&gt;
{{!-!}} [[/CLI/]] || how-to || using PHP from a [[command line interface]]&lt;br /&gt;
{{!-!}} [[/criticism/]] || community || why PHP is bad&lt;br /&gt;
{{!-!}} [[/debugging/]] || how-to || especially [[/debugging/interactive|/interactive]]&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/declare/]]()&amp;lt;/code&amp;gt;: altering PHP behavior within a file, including strict typing&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/enum/]]&amp;lt;/code&amp;gt; || type/concept&lt;br /&gt;
{{!-!}} [[/file/]]-handling || how-to&lt;br /&gt;
{{!-!}} [[/frameworks/]]&lt;br /&gt;
{{!-!}} [[/function variable/]]: a variable can be a reference to a function&lt;br /&gt;
{{!-!}} [[/fx/]]: function documentation/notes&lt;br /&gt;
{{!-!}} [[/GUI/]]: graphical interface programming in PHP&lt;br /&gt;
{{!-!}} [[/installing/]]&lt;br /&gt;
{{!-!}} [[/inheritance/]] || syntax || rules&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/interface/]]&amp;lt;/code&amp;gt; || keyword&lt;br /&gt;
{{!-!}} [[/namespace/]]s || keyword/concept&lt;br /&gt;
{{!-!}} [[/operator/]]s || syntax || there are some relatively obscure ones that aren&#039;t well-indexed in the official documentation&lt;br /&gt;
{{!-!}} [[/referencing/]]: how variable references work&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/ReflectionClass/]]&amp;lt;/code&amp;gt; || native class || especially &amp;lt;code&amp;gt;[[/ReflectionClass/getParentClass|ReflectionClass::getParentClass]]()&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/resource/]]&amp;lt;/code&amp;gt; || syntax/concept&lt;br /&gt;
{{!-!}} {{l/pfx|/resource/|stream}} || a particular type of resource&lt;br /&gt;
{{!-!}} [[/string/]] || type/functions&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/trait/]]&amp;lt;/code&amp;gt; || keyword/concept || including &amp;quot;[[/trait/use|use]]&amp;quot; in the context of traits&lt;br /&gt;
{{!-!}} [[/type declaration/]]&lt;br /&gt;
{{!-!}} &amp;lt;code&amp;gt;[[/use/]]&amp;lt;/code&amp;gt; || keyword || &amp;quot;use&amp;quot; has 3 different meanings in PHP&lt;br /&gt;
{{!-!}} [[/XML/]] || libraries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Related Articles==&lt;br /&gt;
* [[Apache and PHP]]: getting the two of them to work together nicely&lt;br /&gt;
* [[Perl vs. PHP]]: comparisons between the two languages&lt;br /&gt;
* [[register_globals]]&lt;br /&gt;
===offsite===&lt;br /&gt;
* [[wooz:2021/11/25/PHP documentation gripe]]: a misunderstanding about type-compatibility in method overrrides&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
===Reference===&lt;br /&gt;
* [http://php.net/ Web]&lt;br /&gt;
** [http://php.net/manual/ Manual]&lt;br /&gt;
*** [http://php.net/manual/en/langref.php Language Reference]&lt;br /&gt;
**** [http://php.net/manual/en/language.constants.predefined.php Magic constants]&lt;br /&gt;
**** [https://www.php.net/manual/en/language.namespaces.rules.php Name resolution rules]&lt;br /&gt;
**** parameter types: [http://php.net/manual/en/functions.arguments.php Function arguments] (aka type hinting)&lt;br /&gt;
**** [https://www.php.net/manual/en/reserved.variables.php Predefined variables]&lt;br /&gt;
* {{wikipedia}}&lt;br /&gt;
&lt;br /&gt;
===Social===&lt;br /&gt;
* [https://twitter.com/official_php Twitter]&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
* [https://www.phptherightway.com/ PHP The Right Way]: good practices and patterns&lt;br /&gt;
* [http://www.hardened-php.net/ Hardened PHP]: patches to improve PHP security&lt;br /&gt;
* [https://3v4l.org/ 3v4l.org] &amp;quot;is an online shell that allows you to run your code on my server. I compiled more than 200 different PHP versions (every version released since 4.3.0) plus HHVM for you to use.&amp;quot;&lt;br /&gt;
====Development Tools====&lt;br /&gt;
* [http://phpundercontrol.org/ phpUnderControl] - &amp;quot;Continuous Integration for PHP&amp;quot;&lt;br /&gt;
====Users Groups====&lt;br /&gt;
* [http://www.tripug.org/ Triangle PHP Users Group]: [[The Triangle, NC]]&lt;br /&gt;
====Coding Resources====&lt;br /&gt;
* [[PEAR]] (PHP Extension and Application Repository):&lt;br /&gt;
** [http://pear.php.net/ Official]&lt;br /&gt;
** {{wikipedia|PEAR}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=PHP/enum&amp;diff=29372</id>
		<title>PHP/enum</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=PHP/enum&amp;diff=29372"/>
		<updated>2026-03-15T12:31:09Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fmt/title|PHP enum support}}&lt;br /&gt;
==Examples==&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! &amp;quot;Basic&amp;quot; enum || &amp;quot;Backed&amp;quot; enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
enum Suit&lt;br /&gt;
{&lt;br /&gt;
    case Hearts;&lt;br /&gt;
    case Diamonds;&lt;br /&gt;
    case Clubs;&lt;br /&gt;
    case Spades;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=php&amp;gt;&lt;br /&gt;
enum Suit: string&lt;br /&gt;
{&lt;br /&gt;
    case Hearts = &#039;H&#039;;&lt;br /&gt;
    case Diamonds = &#039;D&#039;;&lt;br /&gt;
    case Clubs = &#039;C&#039;;&lt;br /&gt;
    case Spades = &#039;S&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
==Methods==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! kind of thing || name &amp;amp; args || returns || defined in || description&lt;br /&gt;
|-&lt;br /&gt;
| static function || [https://www.php.net/manual/en/unitenum.cases.php cases]&amp;lt;syntaxhighlight lang=php inline&amp;gt;()&amp;lt;/syntaxhighlight&amp;gt; || array || {{l/php/native|UnitEnum}} || returns a packed array of all defined cases, in order of declaration&lt;br /&gt;
|-&lt;br /&gt;
| static function || [https://www.php.net/manual/en/backedenum.tryfrom.php tryFrom]&amp;lt;syntaxhighlight lang=php inline&amp;gt;(int|string $value)&amp;lt;/syntaxhighlight&amp;gt; || ?static || {{l/php/native|BackedEnum}} || same as &amp;lt;code&amp;gt;from()&amp;lt;/code&amp;gt;, but returns NULL if not found (instead of erroring)&lt;br /&gt;
|-&lt;br /&gt;
| static function || [https://www.php.net/manual/en/backedenum.from.php from]&amp;lt;syntaxhighlight lang=php inline&amp;gt;(int|string $value)&amp;lt;/syntaxhighlight&amp;gt; || static || {{l/php/native|BackedEnum}} || same as &amp;lt;code&amp;gt;tryFrom&amp;lt;/code&amp;gt;, but throws an error if not found&lt;br /&gt;
|-&lt;br /&gt;
| dynamic property || $name || string || {{l/php/native|UnitEnum}} || the name of the case (case-sensitive)&lt;br /&gt;
|-&lt;br /&gt;
| dynamic property || $value || int or string || {{l/php/native|BackedEnum}} || the value of the case&lt;br /&gt;
|}&lt;br /&gt;
==Caveats==&lt;br /&gt;
There is no &amp;lt;code&amp;gt;is_enum()&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt;s are similar to objects in that:&lt;br /&gt;
* An &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; case will pass the [https://www.php.net/manual/en/function.is-object.php &amp;lt;code&amp;gt;is_object()&amp;lt;/code&amp;gt;] test. (I think.)&lt;br /&gt;
* They may implement interfaces.&lt;br /&gt;
* Code in their methods may use &amp;lt;code&amp;gt;self::&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$this-&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;::class&amp;lt;/code&amp;gt; magic constant works.&lt;br /&gt;
&amp;lt;code&amp;gt;Enum&amp;lt;/code&amp;gt;s are [https://www.php.net/manual/en/language.enumerations.object-differences.php different from objects] in that:&lt;br /&gt;
* They cannot be extended, or extend other entities.&lt;br /&gt;
* They can&#039;t have constructors or destructors.&lt;br /&gt;
* They can&#039;t have static properties.&lt;br /&gt;
* The &amp;lt;code&amp;gt;::class&amp;lt;/code&amp;gt; magic constant exists on individual cases (enum instances) as well.&lt;br /&gt;
* An &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; can&#039;t be instantiated like an object; individual cases are &#039;&#039;similar&#039;&#039; to singleton objects.&lt;br /&gt;
** Cases also provide the &amp;lt;code&amp;gt;::class&amp;lt;/code&amp;gt; magic constant. (I don&#039;t &#039;&#039;think&#039;&#039; this works on regular objects.)&lt;br /&gt;
&lt;br /&gt;
Not sure if &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; cases can be used as &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt; cases (to be checked).&lt;br /&gt;
==Documentation==&lt;br /&gt;
Note that enums can be cast directly to arrays.&lt;br /&gt;
* Enumerations:&lt;br /&gt;
** [https://www.php.net/manual/en/language.types.enumerations.php variable type]&lt;br /&gt;
** [https://www.php.net/manual/en/language.enumerations.php Enumerations language reference]&lt;br /&gt;
*** [https://www.php.net/manual/en/language.enumerations.basics.php &amp;quot;Basic&amp;quot; enums]&lt;br /&gt;
*** [https://www.php.net/manual/en/language.enumerations.backed.php &amp;quot;Backed&amp;quot; enums]&lt;br /&gt;
* Demiclasses:&lt;br /&gt;
** {{l/php/native|UnitEnum}}&lt;br /&gt;
** {{l/php/native|BackedEnum}}&lt;br /&gt;
===3rd party===&lt;br /&gt;
* [https://stitcher.io/blog/php-enums stitcher.io]&lt;br /&gt;
&lt;br /&gt;
==Sample Code==&lt;br /&gt;
To get a UnitEnum enum from a case name (equivalent to from()/tryFrom()):&lt;br /&gt;
* constant(&amp;quot;{{arg|enum name}}::{$value}&amp;quot;)&lt;br /&gt;
==Tests==&lt;br /&gt;
* is an &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; case an object (&amp;lt;code&amp;gt;is_object&amp;lt;/code&amp;gt;)? [YES]&lt;br /&gt;
* is an &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; seen as &amp;lt;code&amp;gt;is_a UnitEnum&amp;lt;/code&amp;gt;? [YES]&lt;br /&gt;
* is an &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; an &amp;lt;code&amp;gt;instanceof UnitEnum&amp;lt;/code&amp;gt;? [YES]&lt;br /&gt;
* is an &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; an &amp;lt;code&amp;gt;instanceof enum&amp;lt;/code&amp;gt;? [no]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29371</id>
		<title>Stoat/10528</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29371"/>
		<updated>2026-03-14T14:01:03Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:software]]&lt;br /&gt;
[[category:software/chat community]]&lt;br /&gt;
[[category:service/chat community]]{{#set:ID={{PAGEID}}}}{{#set:URL/fixed=ID/{{PAGEID}}}}{{fmt/title|Stoat chat community software/service}}{{seed}}&lt;br /&gt;
==About==&lt;br /&gt;
&#039;&#039;&#039;Stoat&#039;&#039;&#039; (ID {{PAGEID}}) is software for managing chat communities, provided also as an optional service (SaaS). It was designed as a [[Discord]] workalike/replacement. Originally called {{l/alias|Revolt}}, it was renamed in 2025 or 2026 to avoid a naming-conflict.&lt;br /&gt;
&lt;br /&gt;
Each instance of Stoat can support multiple communities, each with its own set of categorized channels, users, and permissions-structure (among other things).&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* [https://stoat.chat/ home page]&lt;br /&gt;
* [https://developers.stoat.chat developer documents]&lt;br /&gt;
** [https://developers.stoat.chat/api-reference/#tag/server-information/GET/servers/%7Btarget%7D API: Fetch Server]: fetch server info from a server ID&lt;br /&gt;
* [https://sso.stoatinternal.com/ developer admin panel] (I think)&lt;br /&gt;
* [https://github.com/orgs/stoatchat/repositories source code]: multiple repositories&lt;br /&gt;
** [https://github.com/stoatchat/python-client-sdk/blob/master/revolt/http.py Python client SDK]: library for accessing Stoat with Python&lt;br /&gt;
*** [https://stoatpy.readthedocs.io/ Python client SDK documentation]&lt;br /&gt;
**** [https://stoatpy.readthedocs.io/en/latest/authenticating.html authentication]&lt;br /&gt;
**** [https://stoatpy.readthedocs.io/en/latest/api/bots.html bots]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Slack&amp;diff=29370</id>
		<title>Slack</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Slack&amp;diff=29370"/>
		<updated>2026-03-14T14:00:22Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::web service]]&lt;br /&gt;
[[thing type::software]]&lt;br /&gt;
[[software type::realtime chat]]&lt;br /&gt;
[[license::proprietary]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;&lt;br /&gt;
[[category:service/chat community]]&lt;br /&gt;
{{fmt/title|Slack chat community service}}&lt;br /&gt;
{{seed}}&lt;br /&gt;
==Notes==&lt;br /&gt;
Pinning vs. Starring&lt;br /&gt;
* Pinning:&lt;br /&gt;
** Visible to everyone&lt;br /&gt;
** Channel-specific&lt;br /&gt;
* Starring (favoriting):&lt;br /&gt;
** Visible only to you&lt;br /&gt;
** Listed across all channels&lt;br /&gt;
==Links==&lt;br /&gt;
===How To===&lt;br /&gt;
* [https://get.slack.help/hc/en-us/articles/201658943-Export-your-workspace-data Export your workspace data]&lt;br /&gt;
** via Quora: [https://www.quora.com/Is-it-possible-to-export-Slack-chats-If-so-then-how Is it possible to export Slack chats? If so, then how?]&lt;br /&gt;
===Articles===&lt;br /&gt;
{{li/date|2017|01|18}} [https://www.fastcompany.com/3067246/the-unexpected-design-challenge-behind-slacks-new-threaded-conversations The Unexpected Design Challenge Behind Slack’s New Threaded Conversations]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Category:service/chat_community&amp;diff=29369</id>
		<title>Category:service/chat community</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Category:service/chat_community&amp;diff=29369"/>
		<updated>2026-03-14T13:58:37Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;category:service pages about chat community services&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:service]]&lt;br /&gt;
pages about [[chat community]] services&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Discord&amp;diff=29368</id>
		<title>Discord</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Discord&amp;diff=29368"/>
		<updated>2026-03-14T13:57:49Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;hide&amp;gt;&lt;br /&gt;
[[page type::article]]&lt;br /&gt;
[[thing type::web service]]&lt;br /&gt;
[[thing type::software]]&lt;br /&gt;
[[software type::realtime chat]]&lt;br /&gt;
[[license::proprietary]]&lt;br /&gt;
&amp;lt;/hide&amp;gt;__NOTOC__&lt;br /&gt;
[[category:software]]&lt;br /&gt;
[[category:service/chat community]]&lt;br /&gt;
{{fmt/title|Discord chat community service}}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black; background-color: #ddd; float:right;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;big&amp;gt;&#039;&#039;&#039;Especially Useful Pages&#039;&#039;&#039;: &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;{{l/sub|101}}&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt; - &amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;{{l/sub|formatting}}&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
==About==&lt;br /&gt;
[[Discord]] is a proprietary multimedia realtime chat-community [[web service]] and client application for desktop and mobile.&lt;br /&gt;
&lt;br /&gt;
It was possibly the earliest available alternative to [[Slack]], with one major difference being that users identify against a central server rather than individual servers. This allows for user interaction ([[direct message|DM]]s) outside of the context of a particular server, and also discovery of what servers and friends you share with others.&lt;br /&gt;
==Pages==&lt;br /&gt;
* [[/alternatives/]]&lt;br /&gt;
* [[/API/]]: writing software to interact with Discord&lt;br /&gt;
* [[/bots/]]: there are a lot of bots available for extending Discord functionality&lt;br /&gt;
* [[/how to/crown/]]: giving someone else admin powers on your Discord server&lt;br /&gt;
* [[/formatting/]]: how to do various types of text-formatting when writing in Discord (it&#039;s similar to Markdown)&lt;br /&gt;
* [[/links/]]: external information (official &amp;amp; not)&lt;br /&gt;
* [[/logging/]]&lt;br /&gt;
* [[/migration/]]&lt;br /&gt;
* [[/notes/]]: loose notes to be turned into proper documentation&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29367</id>
		<title>Stoat/10528</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29367"/>
		<updated>2026-03-14T13:45:06Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:software]]&lt;br /&gt;
[[category:software/chat community]]&lt;br /&gt;
[[category:service/chat community]]&lt;br /&gt;
{{#set:ID={{PAGEID}}}}{{#set:URL/fixed=ID/{{PAGEID}}}}{{fmt/title|Stoat chat community software/service}}{{seed}}&lt;br /&gt;
==About==&lt;br /&gt;
&#039;&#039;&#039;Stoat&#039;&#039;&#039; (ID {{PAGEID}}) is software for managing chat communities, provided also as an optional service (SaaS). It was designed as a [[Discord]] workalike/replacement. Originally called {{l/alias|Revolt}}, it was renamed in 2025 or 2026 to avoid a naming-conflict.&lt;br /&gt;
&lt;br /&gt;
Each instance of Stoat can support multiple communities, each with its own set of categorized channels, users, and permissions-structure (among other things).&lt;br /&gt;
==Links==&lt;br /&gt;
===Official===&lt;br /&gt;
* [https://stoat.chat/ home page]&lt;br /&gt;
* [https://developers.stoat.chat developer documents]&lt;br /&gt;
** [https://developers.stoat.chat/api-reference/#tag/server-information/GET/servers/%7Btarget%7D API: Fetch Server]: fetch server info from a server ID&lt;br /&gt;
* [https://sso.stoatinternal.com/ developer admin panel] (I think)&lt;br /&gt;
* [https://github.com/orgs/stoatchat/repositories source code]: multiple repositories&lt;br /&gt;
** [https://github.com/stoatchat/python-client-sdk/blob/master/revolt/http.py Python client SDK]: library for accessing Stoat with Python&lt;br /&gt;
*** [https://stoatpy.readthedocs.io/ Python client SDK documentation]&lt;br /&gt;
**** [https://stoatpy.readthedocs.io/en/latest/authenticating.html authentication]&lt;br /&gt;
**** [https://stoatpy.readthedocs.io/en/latest/api/bots.html bots]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat&amp;diff=29366</id>
		<title>Stoat</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat&amp;diff=29366"/>
		<updated>2026-03-14T13:24:59Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;category:disambiguation Stoat (capitalized) can refer to: * Stoat chatroom software/service * SaaS platform for GitHub builds&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:disambiguation]]&lt;br /&gt;
[[Stoat]] (capitalized) can refer to:&lt;br /&gt;
* [[/10528|Stoat chatroom software/service]]&lt;br /&gt;
* [[/10531|SaaS platform for GitHub builds]]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29365</id>
		<title>Stoat/10531</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29365"/>
		<updated>2026-03-14T13:23:53Z</updated>

		<summary type="html">&lt;p&gt;Woozle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#set:ID={{PAGEID}}}}{{fmt/title|Stoat SaaS|see [[Stoat]] for other things by this name.}}{{seed}}&lt;br /&gt;
Stoat (ID 10531) is a {{fmt/quote|[[SaaS]] platform for developer tooling focused on aggregating data across [[GitHub]] builds into a single pull request comment that is updated as new data becomes available}}.&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://docs.stoat.dev/docs/intro What Is Stoat?]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/SaaS&amp;diff=29364</id>
		<title>Stoat/SaaS</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/SaaS&amp;diff=29364"/>
		<updated>2026-03-14T13:20:02Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Woozle moved page Stoat/SaaS to Stoat/10531: permanent title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Stoat/10531]]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29363</id>
		<title>Stoat/10531</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29363"/>
		<updated>2026-03-14T13:20:01Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Woozle moved page Stoat/SaaS to Stoat/10531: permanent title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#set:ID={{PAGEID}}}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29362</id>
		<title>Stoat/10531</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10531&amp;diff=29362"/>
		<updated>2026-03-14T13:19:33Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Created page with &amp;quot;{{#set:ID={{PAGEID}}}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#set:ID={{PAGEID}}}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=ID/10528&amp;diff=29361</id>
		<title>ID/10528</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=ID/10528&amp;diff=29361"/>
		<updated>2026-03-14T13:14:08Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Woozle moved page ID/10528 to Stoat/10528: experimental reorg pt. 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Stoat/10528]]&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29360</id>
		<title>Stoat/10528</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=Stoat/10528&amp;diff=29360"/>
		<updated>2026-03-14T13:14:08Z</updated>

		<summary type="html">&lt;p&gt;Woozle: Woozle moved page ID/10528 to Stoat/10528: experimental reorg pt. 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PAGEID}}&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
</feed>