com doc/zh: Remove magic quote mentions see https://github. com/php/doc-en/commit/f029b664b8728bd5cbb 697cb9a4409aea07cb36c: faq/using. xml reference/info/functions/get-magic-quotes-gpc.xml sec urity/magicquotes.xml

[email protected] (Dai Jie) Sat, 16 Jan 2021 16:13:07 +0000
Newsgroups php.doc.zh
Message-ID <[email protected]>
Commit:    f92a4ece4afe67591a68183dbc93f646e6264262
Author:    戴劼 <[email protected]>         Sun, 17 Jan 2021 00:13:07 +0800
Parents:   18698fda50e129ebd78b828f1cbe5adf4a47c3ee
Branches:  master

Link:       http://git.php.net/?p=doc/zh.git;a=commitdiff;h=f92a4ece4afe67591a68183dbc93f646e6264262

Log:
Remove magic quote mentions
see https://github.com/php/doc-en/commit/f029b664b8728bd5cbb697cb9a4409aea07cb36c

Changed paths:
  M  faq/using.xml
  M  reference/info/functions/get-magic-quotes-gpc.xml
  D  security/magicquotes.xml
diff_f92a4ece4afe67591a68183dbc93f646e6264262.txt (text/plain, 13.6 KB)
diff --git a/faq/using.xml b/faq/using.xml
index 1ade41e8..dc49e78f 100755
--- a/faq/using.xml
+++ b/faq/using.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
 <!-- $Author$ -->
-<!-- EN-Revision: 87a2f30351e8939c82b1b5ecd46fcccedd3ad7c2 Maintainer: Avenger Status: ready -->
+<!-- EN-Revision: f029b664b8728bd5cbb697cb9a4409aea07cb36c Maintainer: Avenger Status: ready -->
 <chapter xml:id="faq.using"
          xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -96,31 +96,6 @@ if (empty($empty)) {
           <function>stripslashes</function> 可以在旧的 PHP 版本中实现类似的操作。
         </para>
 
-        &note.magicquotes.gpc;
-
-      </answer>
-    </qandaentry>
-
-
-
-    <qandaentry xml:id="faq.using.stripslashes">
-      <question>
-        <para>
-          我所有的 " 和 ' 都变成了 \" 和
-          \',我如何才能去掉这些不必要的反斜线?它们为什么及如何出现?
-        </para>
-      </question>
-      <answer>
-        <para>
-          最可能的情况是,由于 PHP 的
-          <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> 被开启,反斜线神奇的存在了。这是
-          PHP 的一个旧特性引起的,应该被禁用,不要依赖它。另外,
-          <function>stripslashes</function> 函数能够从
-          <type>string</type>中去掉所有的反斜线。
-        </para>
-
-        &note.magicquotes.gpc;
-
       </answer>
     </qandaentry>
 
@@ -446,7 +421,7 @@ foreach ($headers as $name => $content) {
       <question>
         <para>
           有些 PHP 选项可以接受缩写的字节值,与仅能接受 
-          <type>integer</type> 字节值相反。都有哪些缩写字节值?
+          <type>int</type> 字节值相反。都有哪些缩写字节值?
         </para>
       </question>
       <answer>
@@ -456,9 +431,9 @@ foreach ($headers as $name => $content) {
           <literal>1048576</literal> 字节。
           <literal>1K</literal> 等于一个 Kilobyte,即 
           <literal>1024</literal> 字节。不能在 &php.ini; 之外使用这些符号,最好用整数的 
-          <type>integer</type> 字节值。参见 
+          <type>int</type> 字节值。参见 
           <function>ini_get</function> 文档中的转换示例。要注意,数字类型为
-          <type>integer</type> 会自动取整,这意味着
+          <type>int</type> 会自动取整,这意味着
           <literal>0.5M</literal> 与 <literal>0</literal> 是等价的。
         </para>
         <note>
diff --git a/reference/info/functions/get-magic-quotes-gpc.xml b/reference/info/functions/get-magic-quotes-gpc.xml
index b5dcb3ee..3d8d3102 100644
--- a/reference/info/functions/get-magic-quotes-gpc.xml
+++ b/reference/info/functions/get-magic-quotes-gpc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
-<!-- EN-Revision: 098fcff39a18a4edffdb61dd17eec4264123dcab Maintainer: daijie Status: ready -->
+<!-- EN-Revision: f029b664b8728bd5cbb697cb9a4409aea07cb36c Maintainer: daijie Status: ready -->
 <!-- Reviewed: no -->
 
 <refentry xml:id="function.get-magic-quotes-gpc" xmlns="http://docbook.org/ns/docbook">
@@ -8,6 +8,10 @@
   <refname>get_magic_quotes_gpc</refname>
   <refpurpose>获取当前 magic_quotes_gpc 的配置选项设置</refpurpose>
  </refnamediv>
+
+ <refsynopsisdiv>
+   &warn.deprecated.function-7-4-0;
+ </refsynopsisdiv>
  
  <refsect1 role="description">
   &reftitle.description;
@@ -16,22 +20,14 @@
    <void/>
   </methodsynopsis>
   <para>
-   返回当前 <link
-   linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> 配置选项的设置
-  </para>
-  <para>
-   记住,尝试在运行时设置 <link linkend="ini.magic-quotes-gpc">
-   magic_quotes_gpc</link> 将不会生效。
-  </para>
-  <para>
-   更多关于 magic_quotes 的信息参见<link linkend="security.magicquotes">安全</link>一章。
+    始终返回 &false;。
   </para>
  </refsect1>
  
  <refsect1 role="returnvalues">
   &reftitle.returnvalues;
   <para>
-   如果 magic_quotes_gpc 为关闭时返回 0,否则返回 1。在 PHP 5.4.O 起将始终返回 &false;。
+   始终返回 &false;。
   </para>
  </refsect1>
  
@@ -48,9 +44,9 @@
      </thead>
      <tbody>
       <row>
-       <entry>5.4.0</entry>
+       <entry>7.4.0</entry>
        <entry>
-        始终返回 &false;,因为这个魔术引号功能已经从 PHP 中移除了。
+           该函数已被废弃。
        </entry>
       </row>
      </tbody>
@@ -59,51 +55,6 @@
   </para>
  </refsect1>
  
- <refsect1 role="examples">
-  &reftitle.examples;
-  <para>
-   <example>
-    <title><function>get_magic_quotes_gpc</function> 例子</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-// 如果启用了魔术引号
-echo $_POST['lastname'];             // O\'reilly
-echo addslashes($_POST['lastname']); // O\\\'reilly
-
-// 适用各个 PHP 版本的用法
-if (get_magic_quotes_gpc()) {
-    $lastname = stripslashes($_POST['lastname']);
-}
-else {
-    $lastname = $_POST['lastname'];
-}
-
-// 如果使用 MySQL
-$lastname = mysql_real_escape_string($lastname);
-
-echo $lastname; // O\'reilly
-$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
-?>
-]]>
-    </programlisting>
-   </example>
-  </para>
- </refsect1>
- 
- <refsect1 role="notes">
-  &reftitle.notes;
-  <note>
-   <para>
-    如果指令
-    magic_quotes_sybase 为 ON,它会完全覆盖 <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>。
-    所以即使 <function>get_magic_quotes_gpc</function> 返回 &true;,双引号、反斜杠或 NUL 都不会被转义。
-    只有单引号会被转义。
-    这种情况下它们看上去像:<emphasis>''</emphasis>
-   </para>
-  </note>
- </refsect1>
- 
  <refsect1 role="seealso">
   &reftitle.seealso;
   <para>
diff --git a/security/magicquotes.xml b/security/magicquotes.xml
deleted file mode 100644
index 26ce98d1..00000000
--- a/security/magicquotes.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- $Revision$ -->
-<!-- EN-Revision: 2f0cfaf4060b232835537001936d20b0a1e2a2d6 Maintainer: HonestQiao Status: ready -->
-<!-- Reviewed: no Maintainer: HonestQiao -->
-<!-- CREDITS: dallas -->
-<chapter xml:id="security.magicquotes" xmlns="http://docbook.org/ns/docbook">
- <title>魔术引号</title>
-&warn.deprecated.feature-5-3-0.removed-5-4-0;
- <para>
-  魔术引号(Magic Quote)是一个自动将进入 <acronym>PHP</acronym> 脚本的数据进行转义的过程。最好在编码时不要转义而在运行时根据需要而转义。
- </para>
-
- <sect1 xml:id="security.magicquotes.what">
-  <title>什么是魔术引号</title>
-  &warn.deprecated.feature-5-3-0.removed-5-4-0;
-  <para>
-   当打开时,所有的 <literal>'</literal>(单引号),<literal>"</literal>(双引号),<literal>\</literal>(反斜线)和
-   <literal>NULL</literal> 字符都会被自动加上一个反斜线进行转义。这和
-   <function>addslashes</function> 作用完全相同。
-  </para>
-  <para>
-   一共有三个魔术引号指令:
-  </para>
-  <itemizedlist>
-   <listitem>
-    <simpara>
-     <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
-    </simpara>
-    <simpara>
-     影响到 <acronym>HTTP</acronym> 请求数据(GET,POST 和 COOKIE)。不能在运行时改变。在
-     <acronym>PHP</acronym> 中默认值为 <emphasis>on</emphasis>。
-    </simpara>
-    <simpara>
-     参见 <function>get_magic_quotes_gpc</function>。
-    </simpara>
-   </listitem>
-   <listitem>
-    <simpara>
-     <link linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link>
-    </simpara>
-    <simpara>
-     如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在
-     <acronym>PHP</acronym> 中的默认值为 <emphasis>off</emphasis>。
-    </simpara>
-    <simpara>
-     参见 <function>set_magic_quotes_runtime</function> 和
-     <function>get_magic_quotes_runtime</function>。
-    </simpara>
-   </listitem>
-   <listitem>
-    <simpara>
-     magic_quotes_sybase
-    </simpara>
-    <simpara>
-     如果打开的话,将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖
-     <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>。如果同时打开两个选项的话,单引号将会被转义成
-     <literal>''</literal>。而双引号、反斜线 和 NULL 字符将不会进行转义。
-    </simpara>
-    <simpara>
-     如何取得其值参见 <function>ini_get</function>。
-    </simpara>
-   </listitem>
-  </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.why">
-  <title>为什么要用魔术引号</title>
-  &warn.deprecated.feature-5-3-0.removed-5-4-0;
-  <itemizedlist>
-   <listitem>
-      <simpara>
-       没有理由再使用魔术引号,因为它不再是 <acronym>PHP</acronym> 支持的一部分。
-       不过它帮助了新手在不知不觉中写出了更好(更安全)的代码。
-       但是在处理代码的时候,最好是更改你的代码而不是依赖于魔术引号的开启。
-      </simpara>
-      <simpara>
-       为什么这个功能存在?是为了阻止<link linkend="security.database.sql-injection">SQL 注入</link>。
-       在今天,开发者能够更好得意识到了安全问题,并最终使用数据库转移机制或者 prepared 语句来取代魔术引号功能。
-      </simpara>
-   </listitem>
-  </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.whynot">
-  <title>为什么不用魔术引号</title>
-  &warn.deprecated.feature-5-3-0.removed-5-4-0;
-  <itemizedlist>
-   <listitem>
-    <simpara>
-     可移植性
-    </simpara>
-    <simpara>
-     编程时认为其打开或并闭都会影响到移植性。可以用
-     <function>get_magic_quotes_gpc</function> 来检查是否打开,并据此编程。
-    </simpara>
-   </listitem>
-   <listitem>
-    <simpara>
-     性能
-    </simpara>
-    <simpara>
-     由于并不是每一段被转义的数据都要插入数据库的,如果所有进入
-     PHP 的数据都被转义的话,那么会对程序的执行效率产生一定的影响。在运行时调用转义函数(如
-     <function>addslashes</function>)更有效率。
-    </simpara>
-    <simpara>
-     尽管 <filename>php.ini-dist</filename> 默认打开了这个选项,但是
-     <filename>php.ini-recommended</filename> 默认却关闭了它,主要是出于性能的考虑。
-    </simpara>
-   </listitem>
-   <listitem>
-    <simpara>
-     不便
-    </simpara>
-    <simpara>
-     由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \'。针对这个问题,可以使用
-     <function>stripslashes</function> 函数处理。
-    </simpara>
-   </listitem>
-  </itemizedlist>
- </sect1>
-
- <sect1 xml:id="security.magicquotes.disabling">
-  <title>关闭魔术引号</title>
-  <para>
-   <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
-   指令只能在系统级关闭,不能在运行时。也就是说不能用
-   <function>ini_set</function>。
-  </para>
-  <para>
-   <example>
-    <title>在服务器端关闭魔术引号</title>
-    <para>
-     下面是一个通过 &php.ini; 文件把这些选项设为 <literal>Off</literal>
-     的范例。更多信息请参见本手册的<link
-     linkend="configuration.changes">怎样修改配置设定</link>。
-    </para>
-    <screen>
-<![CDATA[
-; Magic quotes
-;
-
-; Magic quotes for incoming GET/POST/Cookie data.
-magic_quotes_gpc = Off
-
-; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
-magic_quotes_runtime = Off
-
-; Use Sybase-style magic quotes (escape ' with '' instead of \').
-magic_quotes_sybase = Off
-]]>
-    </screen>
-    <para>
-     如果不能修改服务器端的配置文件,使用
-     <filename>.htaccess</filename> 也可以。范例如下:
-    </para>
-    <screen>
-<![CDATA[
-php_flag magic_quotes_gpc Off
-]]>
-    </screen>
-   </example>
-  </para>
-  <para>
-   为了能写出移植性较强的代码(可以运行于任何环境),例如不能修改服务器配置的情况,下面的例子可以在运行时关闭
-   <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>。但是这样做比较低效,适当的修改配置才是更好的办法。
-  </para>
-  <para>
-   <example>
-    <title>在运行时关闭魔术引号</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-if (get_magic_quotes_gpc()) {
-    function stripslashes_deep($value)
-    {
-        $value = is_array($value) ?
-                    array_map('stripslashes_deep', $value) :
-                    stripslashes($value);
-
-        return $value;
-    }
-
-    $_POST = array_map('stripslashes_deep', $_POST);
-    $_GET = array_map('stripslashes_deep', $_GET);
-    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
-    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
-}
-?>
-]]>
-    </programlisting>
-   </example>
-  </para>
- </sect1>
-
-</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:"~/.phpdoc/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
--->