Hi,

Can you please activate this SVN account: hcrow?

I attached the files he translated:languages.xml, using.xml

Thanks!

Yago

---------- Forwarded message ----------
From: Yago Ferrer <y...@php.net>
Date: Tue, Jul 20, 2010 at 3:03 AM
Subject: Re: [PHP-DOC] SVN Account Request: hcrow
To: Philip Olson <phi...@roshambo.org>


Hi Philip can you please activate this account?


On Mon, Jul 19, 2010 at 7:20 AM, Yago Ferrer <y...@php.net> wrote:

> Hi,
> can you please activate the SVN account: hcrow for Harold Standley?
>
> He translated the file: /es/faq/languages.xml under the account: Anonymous
> #198
> I talked with him and he is interested in continuous collaboration into the
> Spanish translation project.
>
> Thanks!
>
> Yago
>
>
> On Mon, Jul 19, 2010 at 7:11 AM, Harold Stanley Rivas Martinez <
> hstan...@salnet.net> wrote:
>
>> I would like to have an SVN account to help with the Spanish translation
>> of the PHP Manual. Yago Ferrer is who refer to me here.
>>
>
>
>
> --
> Yago Ferrer
>



-- 
Yago Ferrer



-- 
Yago Ferrer
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 297557 Maintainer: TheCrOw Status: ready$ -->
<chapter xml:id="faq.using" xmlns="http://docbook.org/ns/docbook"; xmlns:xlink="http://www.w3.org/1999/xlink";>
  <title>Usando PHP</title>
  <titleabbrev>Usando PHP</titleabbrev>

  <para>
   Esta sección reune varios errores comunes a los que se puede
   enfrentar mientras se escriben scripts en PHP.
  </para>

  <qandaset>

   <qandaentry xml:id="faq.using.parameterorder">
    <question>
     <para>
      No puedo recordar el orden de los parámetros de las funciones de PHP, son aleatorias?
     </para>
    </question>
    <answer>
     <para>
      PHP es un pegamento que une cientos de librerías externas, y esto a veces lo complica.
      Por eso, una simple regla de oro es la siguiente:
     </para>
     <para>
      Los parámetros de la <link linkend="book.array">función Array</link> están ordenados
      como "<emphasis>aguja, pajar</emphasis>" mientras que las  
      <link linkend="book.strings">funciones de Cadena</link> son lo contrario,
      "<emphasis>pajar, aguja</emphasis>".
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.anyform">
    <question>
     <para>
      Me gustaría escribir un script genérico en PHP que pueda manejar datos
      que vengan de cualquier forma. Como puedo saber que variables pasadas por
      el método POST están disponibles?
     </para>
    </question>
    <answer>
     <para>
      PHP ofrece muchas <link linkend="language.variables.predefined">
      variables predefinidas</link>, como la variable superglobal <varname>
      $_POST</varname>. Se puede recorrer la variable $_POST como una matriz
      ya que es una matriz asociativa de todos los valores POSTeados. Por ejemplo,
      vamos a recorrer simplemente con &foreach;, revisar los valores
      <function>vacíos</function>, e imprimirlos todos.
      <programlisting role="php">
<![CDATA[
<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "Ninguno de los valores POSTeados esta vacío, se envió:\n";
    var_dump($post);
} else {
    print "Tenemos " . count($empty) . " valores vacíos\n";
    print "posteados:\n"; var_dump($post);
    print "Vacíos:\n";  var_dump($empty);
    exit;
}
?>
]]>
      </programlisting>
     </para>
     
     &note.superglobals;

    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.addslashes">
    <question>
     <para>
      Necesito convertir todas las comillas simples (') a barras
      invertidas seguidas de comillas simples (\'). Como puedo
      hacer esto con expresiones regulares? También me gustaría
      convertir " a \" y \ a \\.
     </para>
    </question>
    <answer>
     <para>
      Asumiendo que esto es para una base de datos, se puede usar el
      mecanismos que viene con la base de datos. Por ejemplo, usar
      la función <function>mysql_real_escape_string</function> con MYSQL y
      <function>pg_escape_string</function> con PostgreSQL. Hay también
      funciones genéricas como <function>addslashes</function> y <function>stripslashes</function>,
      que son más comunes en código PHP antiguo.
     </para>

     &note.magicquotes.gpc;

    </answer>
   </qandaentry>
   
   <qandaentry xml:id="faq.using.stripslashes">
    <question>
     <para>
      Todas mis " se convirtieron en \" y mis ' en \', como puedo deshacerme
      de todas esas barras no deseadas? Cómo y porqué están ahí?
     </para>
    </question>
    <answer>
     <para>
      Lo mas probable es que esas barras invertidas existen porque la directiva
      de PHP <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link> está activada.
      Esta es una característica antigua de PHP, y debería deshabilitarse y no
      usarse mas. Pero, la función <function>stripslashes</function> podría usarse
      para eliminar las barras invertidas de una <type>cadena</type>.
     </para>
     
     &note.magicquotes.gpc;
     
    </answer>
   </qandaentry>   

   <qandaentry xml:id="faq.register-globals">
    <question>
     <para>
      Cómo me afecta la directiva register_globals de PHP?
     </para>
    </question>
    <answer>
     <para>
      En primer lugar, una explicación de lo que hace la configuración ini.
      Digamos que la siguiente URL esta siendo usada:
      <literal>http://example.com/foo.php?animal=cat</literal>
      y en el archivo <filename>foo.php</filename> tuviéramos el siguiente
      código PHP:
     </para>
     <para>
      <programlisting role="php">
<![CDATA[
<?php
//Es preferible usar $_GET aqui
echo $_GET['animal'];

// para que la variable $animal exista, register_globlas debe estar en ON
// NO SE DEBE HACER ESTO
echo $animal;

// Esto aplica a todas las variables, inclusve a las variables $_SERVER
echo $_SERVER['PHP_SELF'];

// de nuevo, para que $PHP_SELF exista, register_globals debe estar en ON
// NO SE DEBE HACER ESTO
echo $PHP_SELF;
?>
]]>
     </programlisting>
    </para>
    <!-- FIXME PHP_6 register_globals removal alert -->
    <para>
     El código anterior demuestra como register_globals crea varias variables.
     Por años este tipo de código ha sido mal visto, y por años ha sido
     deshabilitado por defecto. Hay que tener en cuenta que PHP eventualmente
     removerá esta característica obsoleta. Así que aunque la mayoría de
     hospedajes web deshabilitan register_globals, aun hay artículos
     desactualizados, tutoriales y libros que lo requieren en ON.
    </para>
    <para>
     Ver también los siguientes recursos para información adicional:
     <simplelist>
      <member>La directiva <link linkend="ini.register-globals">register_globals</link></member>
      <member>El <link linkend="security.globals">capítulo de seguridad acerca de register globals</link></member>
      <member><link linkend="language.variables.external">Manejando variables externas</link></member>
      <member>Usar <link linkend="language.variables.superglobals">superglobals</link> en su lugar</member>
     </simplelist>
    </para>
    <note>
     <para>
      En el ejemplo anterior, usamos una <acronym>URL</acronym> que contiene un
      QUERY_STRING. El paso de la información se hace a través de una solicitud
      HTTP GET, y es esta la razón por la que se usa la variables superglobal
      <varname>$_GET</varname>.
     </para>
    </note>
   </answer>
  </qandaentry>

   <qandaentry xml:id="faq.using.wrong-order">
    <question>
     <para>
      Cuando hago lo siguiente, la salida se imprime en
      el orden equivocado:
     <programlisting role="php">
<![CDATA[
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
]]>
    </programlisting>
     ¿Que esta pasando?
     </para>
    </question>
    <answer>
     <para>
      Para habilitar que las funciones entreguen como resultado expresiones
      (como concatenarse con otras cadenas como en el ejemplo anterior),
      se necesita el valor <function>return</function>, no la función
      <function>echo</function>.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.newlines">
    <question>
     <para>
      ¿Hey, que le pasa a mis líneas nuevas?
      <programlisting role="php">
<![CDATA[
<pre>
<?php echo "Esto debería ser la primer línea."; ?>
<?php echo "Esto debería mostrarse después de la línea anterior."; ?>
</pre>
]]>
      </programlisting>
     </para>
    </question>
    <answer>
     <para>
      "?&gt;\n" (donde \n significa una nueva línea). Entonces, en el
      En PHP, el fin para un bloque de código es o bien "?&gt;" o
      ejemplo anterior, las sentencias a las que se les dio el echo
      estarán en una línea, porque PHP omite las líneas nuevas después
      del final de un bloque. Esto significa que se necesita agregar
      una línea extra después de cada bloque de código PHP para lograr
      que se imprima una nueva línea.
     </para>
     <para>
      ¿Porqué PHP hace esto? por que cuando se formatea HTML normal, esto
      normalmente hace la vida más fácil por que no se quiere esa nueva
      línea, pero se tendrían que crear líneas extremadamente largas o en
      otro caso hacer el código fuente de la pagina ilegible para que
      tenga efecto.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.headers-sent">
    <question>
     <para>
      Recibo el mensaje 'Warning: Cannot send session cookie -
      headers already sent...' o 'Cannot add header information -
      headers already sent...'.
     </para>
    </question>
    <answer>
     <para>
      Las funciones <function>header</function>, <function>setcookie</function>,
      y las funciones de <link linkend="ref.session">sesión</link> necesitan
      agregar encabezados (headers) a la salida pero los encabezados solo
      pueden enviarse antes que cualquier otro contenido. No deben de haber
      salidas antes de usar esas funciones, salidas como HTML. La función
      <function>headers_sent</function> chequeará si tu script ya ha enviado
      los headers y mirará también las <link linkend="ref.outcontrol">Funciones
      de control de salidas</link>.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.header">
    <question>
     <para>
      Necesito accesar a información en las solicitudes de encabezados
      directamente. Como puedo hacerlo?
     </para>
    </question>
    <answer>
     <para>
      La función <function>getallheaders</function> hará esto si se ésta
      ejecutando PHP como un módulo de Apache. Entonces, el siguiente
      código mostrará todas las peticiones a los encabezados:
      <programlisting role="php">
<![CDATA[
<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>
]]>
      </programlisting>
     </para>
     <para>
      Ver también
      <function>apache_lookup_uri</function>,
      <function>apache_response_headers</function>, y
      <function>fsockopen</function>
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.authentication">
    <question>
     <para>
      Cuando intento usar autenticación con IIS obtengo 'No Input file specified'.
      (no hay archivo de entrada especificado).
     </para>
    </question>
    <answer>
     <para>
      El modelo de seguridad de IIS falla aquí. Este es un problema común
      de todos los programas CGI que se ejecutan bajo IIS. Una solución es
      crear un archivo plano HTML (no interpretado por PHP) como la
      página de entrada en el directorio autenticado. Entonces usa el tag
      META para direccionar a la página en PHP, o ten un enlace a la
      página en PHP. Entonces PHP reconocerá la autenticación correctamente.
      Con el módulo ISAPI, esto no es un problema. Esto no debería tener
      efecto con otros NT web servers. Para más información, ver:
      <link xlink:href="&url.iis;">&url.iis;</link> y la sección del manual
      <link linkend="features.http-auth">Autenticación HTTP</link>.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.iis.sharing">
    <question>
     <para>
      Windows: No puedo accesar archivos compartidos en otra computadora
      usando IIS
     </para>
    </question>
    <answer>
     <para>
      Se tiene que cambiar el <literal>Go to Internet Information Services</literal>.
      Se debe localizar el archivo PHP e ir a sus propiedades. Luego ir
      al tab <literal>Seguridad de Archivos</literal> y, <literal>Editar -&lt;
      Acceso anónimo y control de autenticación</literal>.
     </para>
     <para>
      Se puede corregir el problema ya sea deshabilitando <literal>Acceso
      anónimo</literal> y dejando <literal>Autenticación Integrada de Windows</literal>
      marcado, o, marcando <literal>Acceso anónimo</literal> y editando al
      usuario ya que no tendría que tener acceso.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.mixml">
    <question>
     <para>
      ¿Como se supone que mezclaría XML y PHP? no le parecen
      mis tags &lt;?xml!
     </para>
    </question>
    <answer>
     <para>
      Con el fin de integrar directamente &lt;?xml en el código PHP, se tiene
      que deshabilitar los tags cortos en la directiva de PHP <link linkend="ini.short-open-tag">short_open_tags</link>
      poniéndolo a <literal>0</literal>. No se puede establecer esta
      directiva con <function>ini_set</function>. Independientemente de que
      <link linkend="ini.short-open-tag">short_open_tags</link> este On u Off,
      se puede hacer algo como: <literal>&lt;?php echo '&lt;?xml'; ?&gt;</literal>.
      La directiva por defecto es <literal>On</literal>.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.variables">
    <question>
     <para>
      Donde puedo encontrar una lista completa de variables disponibles
      para mi en PHP?
     </para>
    </question>
    <answer>
     <para>
      Leer la pagina del manual <link linkend="language.variables.predefined">
      variables predefinidas</link> el cual incluye una lista parcial de
      variables predefinidas disponibles para tu script. Una lista completa
      de variables disponibles (y mucha mas información) puede ser vista
      llamando a la función <function>phpinfo</function>. Hay que asegurarse
      de leer la sección del manual <link linkend="language.variables.external">variables desde
      fuera de PHP</link> el cuál describe escenarios comunes para variables
      externas, como por ejemplo desde un formulario HTML, una Cookie, y
      una URL.
     </para>
     
     &note.registerglobals;

    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.freepdf">
    <question>
     <para>
      ¿Como puedo generar archivos PDF sin usar librerías no libres o
      librerías comerciales como <link linkend="ref.pdf">PDFLib</link>?
      Me gustaría algo que sea libre y no necesite librerías PDF externas.
     </para>
    </question>
    <answer>
     <para>
      Hay algunas alternativas escritas en PHP como
      <link xlink:href="&url.pdf.fpdf;">FPDF</link> y
      <link xlink:href="&url.pdf.tcpdf;">TCPDF</link>.
     </para>
     <para>
      También esta la extensión <link linkend="book.haru">Haru</link>
      que usa la librería externa libHaru.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.cgi-vars">
    <question>
     <para>
      Estoy intentando accesar a una de las variables estándar
      CGI (como <varname>$DOCUMENT_ROOT</varname> o
      <varname>$HTTP_REFERER</varname>) en una función definida
      por el usuario, y parece que no puede encontrarla. Que
      esta mal?
     </para>
    </question>
    <answer>
     <para>
      Es importante realizar que la directiva de PHP <link linkend="ini.register-globals">register_globals</link>
      tenga efectos en el servidor y las variables del entorno.
      Cuando register_globals = off (el valor por defecto desde PHP 4.2.0),
      <varname>$DOCUMENT_ROOT</varname> no existe. En su lugar, se debe
      usar <varname>$_SERVER['DOCUMENT_ROOT']</varname>.
      Si register_globals = on entonces las variables <varname>$DOCUMENT_ROOT</varname> y
      <varname>$GLOBALS['DOCUMENT_ROOT']</varname> también existirán.
     </para>
     <para>
      Si se esta seguro de que register_globals = on y se pregunta porque
      <varname>$DOCUMENT_ROOT</varname> no esta disponible para las funciones,
      es por que son como las otras variables y requerirán la variable
      <literal>global $DOCUMENT_ROOT</literal> dentro de la función.
      Ver también la página del manual en <link linkend="language.variables.scope">ámbito de las variables</link>.
      Es preferible hacer el código con register_globals = off.
     </para>
     
     &note.superglobals;

    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.using.shorthandbytes">
    <question>
     <para>
      Algunas directivas de PHP podrían recibir valores en bytes, en lugar de solo
      valores <type>enteros</type>. Cuales son las opciones de bytes disponibles?
      Y puedo usarlas fuera de &php.ini;?
     </para>
    </question>
    <answer>
     <para>
      Las opciones disponibles son K (por Kilobytes), M (por Megabytes) y G (por
      Gigabytes; disponibles desde PHP 5.1.0), ellos son sensibles a mayúsculas
      y minúsculas.
      Cualquier otra cosa, asume bytes.
      <literal>1M</literal> es igual a un Megabyte o <literal>1048576</literal>
      bytes.  <literal>1K</literal> es igual a un Kilobyte o
      <literal>1024</literal> bytes. No se debería usar esas abreviaciones
      fuera de &php.ini;, en su lugar se usa un valor <type>entero</type> de bytes.
      Ver la documentación de <function>ini_get</function> para ver un ejemplo de
      como convertir esos valores.
     </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:"~/.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
-->
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 300233 Maintainer: TheCrOw Status: ready$ -->
<!-- Reviewed: 02 -->
 <chapter xml:id="faq.languages" xmlns="http://docbook.org/ns/docbook"; xmlns:xlink="http://www.w3.org/1999/xlink";>
  <title>PHP y otros lenguajes</title>
  <titleabbrev>PHP y otros lenguajes</titleabbrev>

  <para>
   PHP es el mejor lenguaje para programación WEB,
   pero que pasa con otros lenguajes?
  </para>

  <qandaset>
   <qandaentry xml:id="faq.languages.asp">
    <question>
     <para>PHP vs. ASP?</para>
    </question>
    <answer>
     <para>
      ASP no es realmente un lenguaje en si, pero es un acrónimo para  
      Active Server Pages; los actuales lenguajes usados para programar ASP
      incluyen Visual Basic Script, JScript, and C#, entre otros. El mayor
      inconveniente de ASP es ser un sistema propietario y que es nativo y
      usado únicamente por Microsoft Internet  Information Server (IIS).
      Esto limita su disponibilidad únicamente a servidores con WIN32.
      Hay un par de proyectos que permiten a ASP funcionar con otros
      ambientes y webservers.
      <link xlink:href="&url.instantasp;">InstantASP</link>
      de<link xlink:href="&url.halcyon;">Halcyon</link> (Comercial)
      Chili!Soft ASP de
      <link xlink:href="&url.chilisoft;">Chili!Soft</link> (Comercial) y
      <link xlink:href="&url.mono;">Mono</link> (open-source).
      Se dice que ASP es mas lento y mas incomodo que PHP, con menos
      estabilidad. Una de las ventajas de ASP es que, al usar VBScript, es
      relativamente fácil de aprender si se es bueno con Visual Basic.
      ASP es habilitado por defecto en IIS, haciéndolo fácil de obtener
      y hacerlo funcionar.
      Sin embargo, los componentes hechos en ASP son realmente limitados,
      así que si se necesitan características "avanzadas" (como interactuar)
      con servidores FTP), se necesitará comprar componentes adicionales.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.languages.coldfusion">
    <question>
     <para>PHP vs. ColdFusion?</para>
    </question>
    <answer>
     <para>
      Se dice comúnmente que PHP es más rápido y más eficiente para
      tareas de programación complejas, así como para probar nuevas ideas,
      y es considerado por muchos el más estable y el que usa menos
      recursos intensivos. Mientras que ColdFusion tuvo en algún momento
      un buen manejo de los errores, abstracción de bases de datos, y manejo
      de fechas, la abstracción de bases de datos dejo que desear cuando fue
      abordado en PHP 4. Una particular cualidad que es listada como una de
      las fuerzas de ColdFusion  es su excelente motor de búsqueda, pero
      muchos argumentos sólidos sugieren que un motor de búsqueda no es algo
      que debería ser incluido en un lenguaje de scripts para la WEB. Además,
      PHP se ejecuta en casi todas las plataformas modernas que existen,
      mientras que ColdFusion esta disponible únicamente para Windows, Solaris,
      Linux, MacOS, y AIX. ColdFusion tiene un buen IDE y es generalmente
      rápido para dar resultados para los nuevos programadores, mientras que
      PHP requiere de más conocimiento de programación. ColdFusion ha sido
      diseñado teniendo en mente a los que no son programadores, mientras
      que PHP esta enfocado en los programadores.
     </para>
    </answer>
   </qandaentry>

   <qandaentry xml:id="faq.languages.perl">
    <question>
     <para>PHP vs. Perl?</para>
    </question>
    <answer>
     <para>
      La mayor ventaja de PHP sobre Perl es que PHP fue diseñado para hacer
      scripts para la web, mientras que Perl fue diseñado para muchas otras
      cosas. Por esto, Perl puede volverse complicado. La flexibilidad /
      complejidad de Perl pueden hacerlo de difícil colaboración
      por parte de desarrolladores de diferentes niveles. PHP es menos
      confuso y estricto en su formato sin perder la flexibilidad. PHP es
      también fácil de integrar en un HTML existente que Perl. En gran medida,
      PHP tiene todas las bondades de Perl - construcciones, sintaxis, etc -
      sin hacer las cosas complicadas como Perl. Además, el interprete de la
      linea de comandos de PHP (CLI por sus siglas en ingles) es suficientemente
      poderoso para realizar tareas de alto nivel en la misma forma en que
      Perl ha sido tradicionalmente empleado. Perl es uno de los lenguajes
      mas usados y un verdadero lenguaje, y se ha mantenido firme desde los 80's,
      pero PHP ha madurado y evolucionado rápido, y continúa haciendo un
      progreso fantástico.
     </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:"~/.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
-->

Reply via email to