mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00

Ex: windows->Windows, commandline->command line, webserver->web server # Sorry translators, but it needed to be done git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@229834 c90b9560-bf6c-de11-be94-00142212c4b1
219 lines
7.1 KiB
XML
Executable file
219 lines
7.1 KiB
XML
Executable file
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.28 $ -->
|
|
<chapter id="faq.misc">
|
|
<title>Miscellaneous Questions</title>
|
|
<titleabbrev>Miscellaneous Questions</titleabbrev>
|
|
|
|
<para>
|
|
There can be some questions we can't put into other
|
|
categories. Here you can find them.
|
|
</para>
|
|
|
|
<qandaset>
|
|
<qandaentry id="faq.misc.bz2">
|
|
<question>
|
|
<para>
|
|
How can I handle the bz2 compressed manuals on Windows?
|
|
</para>
|
|
</question>
|
|
<answer>
|
|
<para>
|
|
If you don't have an archiver-tool to handle bz2 files
|
|
<ulink url="&url.bzip2;">download</ulink> the command line tool
|
|
from Redhat (please find further information below).
|
|
</para>
|
|
<para>
|
|
If you would not like to use a command line tool, you can try free
|
|
tools like <ulink url="&url.stuffit;">Stuffit Expander</ulink>,
|
|
<ulink url="&url.ultimatezip;">UltimateZip</ulink>,
|
|
<ulink url="&url.7zip;">7-Zip</ulink>, or
|
|
<ulink url="&url.quickzip;">Quick Zip</ulink>. If you
|
|
have tools like <ulink url="&url.winrar;">WinRAR</ulink> or
|
|
<ulink url="&url.powerarchiver;">Power Archiver</ulink>, you can
|
|
easily decompress the bz2 files with it. If you use Total Commander
|
|
(formerly Windows Commander),
|
|
a bz2 plugin for that program is available freely from the
|
|
<ulink url="&url.wincmd;">Total Commander</ulink> site.
|
|
</para>
|
|
<para>
|
|
The bzip2 command line tool from Redhat:
|
|
</para>
|
|
<para>
|
|
Win2k Sp2 users grab the latest version 1.0.2, all
|
|
other Windows user should grab version 1.00. After downloading rename
|
|
the executable to bzip2.exe. For convenience put it into a directory in
|
|
your path, e.g. C:\Windows where C represents your Windows installation
|
|
drive.
|
|
</para>
|
|
<para>
|
|
Note: lang stands for your language and x for the desired format, e.g.: pdf.
|
|
To uncompress the php_manual_lang.x.bz2 follow these simple instructions:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>open a command prompt window</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
cd to the folder where you stored the
|
|
downloaded php_manual_lang.x.bz2
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
invoke bzip2 -d php_manual_lang.x.bz2, extracting
|
|
php_manual_lang.x in the same folder
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
In case you downloaded the php_manual_lang.tar.bz2 with many html-files
|
|
in it, the procedure is the same. The only difference is that you got a file
|
|
php_manual_lang.tar. The tar format is known to be treated with most
|
|
common archivers on Windows like e.g.
|
|
<ulink url="&url.winzip;">WinZip</ulink>.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry id="faq.misc.arguments.references">
|
|
<question>
|
|
<para>
|
|
What does & beside argument mean in function declaration of e.g.
|
|
<function>asort</function>?
|
|
</para>
|
|
</question>
|
|
<answer>
|
|
<para>
|
|
It means that the argument is
|
|
<link linkend="language.references.pass">passed by reference</link> and
|
|
the function will likely modify it corresponding to the documentation. You
|
|
can pass only variables this way and you don't need to pass them with
|
|
& in function call (it's even
|
|
<link linkend="ini.allow-call-time-pass-reference">deprecated</link>).
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry id="faq.misc.registerglobals">
|
|
<question>
|
|
<para>
|
|
How do I deal with <literal>register_globals</literal>?
|
|
</para>
|
|
</question>
|
|
<answer>
|
|
<para>
|
|
For information about the security implications of
|
|
<literal>register_globals</literal>, read the security chapter on
|
|
<link linkend="security.globals">Using register_globals</link>.
|
|
</para>
|
|
<para>
|
|
It's preferred to use
|
|
<link linkend="language.variables.superglobals">superglobals</link>,
|
|
rather than relying upon <literal>register_globals</literal> being on.
|
|
</para>
|
|
<para>
|
|
If you are on a shared host with <literal>register_globals</literal> turned
|
|
off and need to use some legacy applications, which require this option
|
|
to be turned on, or you are on some hosting server, where this feature
|
|
is turned on, but you would like to eliminate security risks, you might
|
|
need to emulate the opposite setting with PHP. It is always a good idea to
|
|
first ask if it would be possible to change the option somehow in PHP's
|
|
configuration, but if it is not possible, then you can use these
|
|
compatibility snippets.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Emulating Register Globals</title>
|
|
<para>
|
|
This will emulate register_globals On. If you altered your
|
|
<link linkend="ini.variables-order">variables_order</link> directive,
|
|
consider changing the <varname>$superglobals</varname> accordingly.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Emulate register_globals on
|
|
if (!ini_get('register_globals')) {
|
|
$superglobals = array($_SERVER, $_ENV,
|
|
$_FILES, $_COOKIE, $_POST, $_GET);
|
|
if (isset($_SESSION)) {
|
|
array_unshift($superglobals, $_SESSION);
|
|
}
|
|
foreach ($superglobals as $superglobal) {
|
|
extract($superglobal, EXTR_SKIP);
|
|
}
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
This will emulate register_globals Off. Keep in mind, that this code
|
|
should be called at the very beginning of your script, or after
|
|
<function>session_start</function> if you use it to start your session.
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
// Emulate register_globals off
|
|
function unregister_GLOBALS()
|
|
{
|
|
if (!ini_get('register_globals')) {
|
|
return;
|
|
}
|
|
|
|
// Might want to change this perhaps to a nicer error
|
|
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
|
|
die('GLOBALS overwrite attempt detected');
|
|
}
|
|
|
|
// Variables that shouldn't be unset
|
|
$noUnset = array('GLOBALS', '_GET',
|
|
'_POST', '_COOKIE',
|
|
'_REQUEST', '_SERVER',
|
|
'_ENV', '_FILES');
|
|
|
|
$input = array_merge($_GET, $_POST,
|
|
$_COOKIE, $_SERVER,
|
|
$_ENV, $_FILES,
|
|
isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
|
|
|
|
foreach ($input as $k => $v) {
|
|
if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
|
|
unset($GLOBALS[$k]);
|
|
}
|
|
}
|
|
}
|
|
|
|
unregister_GLOBALS();
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../../manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|