1
0
mirror of https://github.com/php/doc-es.git synced 2026-04-27 09:08:15 +02:00
Files
Philippe DELENTE 9f7804a633 Feature/update revision en misc page reference (#248)
* feat(translation): update revision EN

* feat(translation): update revision EN
2025-07-02 22:37:23 +02:00

364 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: eabde0419cf90f596f60db00e31fcb6ebe41ac55 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.htmlspecialchars" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>htmlspecialchars</refname>
<refpurpose>Convierte caracteres especiales en entidades HTML</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>htmlspecialchars</methodname>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>encoding</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>double_encode</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<para>
Algunos caracteres tienen significados especiales en HTML,
y deben ser reemplazados por entidades HTML para conservar
sus significados. Esta función retorna un string con estas modificaciones. Si se necesita que todas
las subcadenas de entrada que están asociadas a entidades
nombradas sean transformadas, se debe utilizar la función
<function>htmlentities</function>.
</para>
<para>
Si el string de entrada pasado a esta función y el documento final
comparten el mismo juego de caracteres, esta función es suficiente para
preparar la entrada para una inclusión en la mayoría de los contextos
de un documento HTML. Sin embargo, si la entrada puede presentar caracteres
que no están codificados en el juego de caracteres del documento final,
y se desea preservar estos caracteres (como numéricos o
entidades nombradas), esta función y la función <function>htmlentities</function>
(que solo codifica las subcadenas que tienen entidades nombradas equivalentes)
no son suficientes. Se debe utilizar la función
<function>mb_encode_numericentity</function> en su lugar.
</para>
<para>
<table>
<title>Reemplazos realizados</title>
<tgroup cols="2">
<thead>
<row>
<entry>Carácter</entry>
<entry>Reemplazo</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>&amp;</literal> (ampersand)</entry>
<entry><literal>&amp;amp;</literal></entry>
</row>
<row>
<entry><literal>&quot;</literal> (comillas dobles)</entry>
<entry><literal>&amp;quot;</literal> excepto si <constant>ENT_NOQUOTES</constant></entry>
</row>
<row>
<entry><literal>'</literal> (comilla simple)</entry>
<entry>
<literal>&amp;#039;</literal> (para <constant>ENT_HTML401</constant>) o
<literal>&amp;apos;</literal> (para
<constant>ENT_XML1</constant>, <constant>ENT_XHTML</constant> o
<constant>ENT_HTML5</constant>), pero solo cuando
<constant>ENT_QUOTES</constant> está definido
</entry>
</row>
<row>
<entry><literal>&lt;</literal> (menor que)</entry>
<entry><literal>&amp;lt;</literal></entry>
</row>
<row>
<entry><literal>&gt;</literal> (mayor que)</entry>
<entry><literal>&amp;gt;</literal></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
El string a convertir.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Una máscara de bits de uno o más flags siguientes, que determinan la forma
en que las comillas serán gestionadas, cómo se manejarán las secuencias de código inválido, así como el tipo de documento utilizado. Por omisión, es
<literal>ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401</literal>.
<table>
<title>Constantes disponibles para <parameter>flags</parameter></title>
<tgroup cols="2">
<thead>
<row>
<entry>Constante</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>ENT_COMPAT</constant></entry>
<entry>Convierte las comillas dobles e ignora las comillas simples.</entry>
</row>
<row>
<entry><constant>ENT_QUOTES</constant></entry>
<entry>Convierte las comillas dobles y las comillas simples.</entry>
</row>
<row>
<entry><constant>ENT_NOQUOTES</constant></entry>
<entry>Ignora las comillas dobles y las comillas simples.</entry>
</row>
<row>
<entry><constant>ENT_IGNORE</constant></entry>
<entry>
Ignora las secuencias de caracteres inválidas en lugar de retornar un
string vacío. El uso de este flag está fuertemente
desaconsejado por
<link xlink:href="&url.delete.nonchars;">razones de seguridad</link>.
</entry>
</row>
<row>
<entry><constant>ENT_SUBSTITUTE</constant></entry>
<entry>
Reemplaza las secuencias de código inválido con un carácter de reemplazo
Unicode U+FFFD (UTF-8) o &amp;#xFFFD; (de lo contrario) en lugar de retornar un
string vacío.
</entry>
</row>
<row>
<entry><constant>ENT_DISALLOWED</constant></entry>
<entry>
Reemplaza los puntos de código inválidos del documento proporcionado con
un carácter de reemplazo Unicode U+FFFD (UTF-8) o &amp;#xFFFD;
(de lo contrario) en lugar de dejarlo tal cual. Esto puede ser útil para,
por ejemplo, asegurar el correcto formato de documentos XML que contienen
contenido externo.
</entry>
</row>
<row>
<entry><constant>ENT_HTML401</constant></entry>
<entry>
Maneja el código como HTML 4.01.
</entry>
</row>
<row>
<entry><constant>ENT_XML1</constant></entry>
<entry>
Maneja el código como XML 1.
</entry>
</row>
<row>
<entry><constant>ENT_XHTML</constant></entry>
<entry>
Maneja el código como XHTML.
</entry>
</row>
<row>
<entry><constant>ENT_HTML5</constant></entry>
<entry>
Maneja el código como HTML 5.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>encoding</parameter></term>
<listitem>
&strings.parameter.encoding;
<para>
Para esta función, los encodings
<literal>ISO-8859-1</literal>, <literal>ISO-8859-15</literal>,
<literal>UTF-8</literal>, <literal>cp866</literal>,
<literal>cp1251</literal>, <literal>cp1252</literal>, y
<literal>KOI8-R</literal> son equivalentes, siempre que
el parámetro <parameter>string</parameter> sea válido
para el encoding, en el sentido de que los caracteres afectados por la función
<function>htmlspecialchars</function> ocupen la misma posición
en todos estos encodings.
</para>
&reference.strings.charsets;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>double_encode</parameter></term>
<listitem>
<para>
Cuando el parámetro <parameter>double_encode</parameter> está desactivado,
PHP no codificará las entidades html existentes; por omisión, todo es convertido.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
El string convertido.
</para>
<para>
Si el string de entrada <parameter>string</parameter> contiene una
secuencia de código inválida en el parámetro
<parameter>encoding</parameter> proporcionado, se retornará un string vacío
a menos que el flag <constant>ENT_IGNORE</constant> o
<constant>ENT_SUBSTITUTE</constant> esté definido.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.1.0</entry>
<entry>
<parameter>flags</parameter> cambió de <constant>ENT_COMPAT</constant> a
<constant>ENT_QUOTES</constant> | <constant>ENT_SUBSTITUTE</constant> | <constant>ENT_HTML401</constant>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo con <function>htmlspecialchars</function></title>
<programlisting role="php">
<![CDATA[
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Tenga en cuenta que esta función no realiza ningún otro reemplazo que los
que están listados anteriormente. Para realizar un reemplazo completo,
consulte <function>htmlentities</function>.
</para>
</note>
<note>
<para>
En el caso de un valor ambiguo para <parameter>flags</parameter>,
se aplican las siguientes reglas:
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
Cuando ninguno de <constant>ENT_COMPAT</constant>,
<constant>ENT_QUOTES</constant>,
<constant>ENT_NOQUOTES</constant> está presente,
el valor por omisión es <constant>ENT_NOQUOTES</constant>.
</simpara>
</listitem>
<listitem>
<simpara>
Cuando más de uno de <constant>ENT_COMPAT</constant>,
<constant>ENT_QUOTES</constant>,
<constant>ENT_NOQUOTES</constant> están presentes,
<constant>ENT_QUOTES</constant> tiene la mayor prioridad,
seguido de <constant>ENT_COMPAT</constant>.
</simpara>
</listitem>
<listitem>
<simpara>
Cuando ninguno de <constant>ENT_HTML401</constant>,
<constant>ENT_HTML5</constant>,
<constant>ENT_XHTML</constant>, <constant>ENT_XML1</constant> está presente,
el valor por omisión es <constant>ENT_HTML401</constant>.
</simpara>
</listitem>
<listitem>
<simpara>
Cuando más de uno de <constant>ENT_HTML401</constant>,
<constant>ENT_HTML5</constant>,
<constant>ENT_XHTML</constant>, <constant>ENT_XML1</constant> están presentes,
<constant>ENT_HTML5</constant> tiene la mayor prioridad,
seguido de <constant>ENT_XHTML</constant>, <constant>ENT_XML1</constant> y
<constant>ENT_HTML401</constant>.
</simpara>
</listitem>
<listitem>
<simpara>
Cuando más de uno de <constant>ENT_DISALLOWED</constant>,
<constant>ENT_IGNORE</constant>,
<constant>ENT_SUBSTITUTE</constant> están presentes,
<constant>ENT_IGNORE</constant> tiene la mayor prioridad,
seguido de <constant>ENT_SUBSTITUTE</constant>.
</simpara>
</listitem>
</itemizedlist>
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>get_html_translation_table</function></member>
<member><function>htmlspecialchars_decode</function></member>
<member><function>strip_tags</function></member>
<member><function>htmlentities</function></member>
<member><function>nl2br</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->