Todos hemos visto muchas pregunta en StackOverflow que se basan en la idea de que PHP funciona como Javascript. Cuando la persona que claramente no entiende que PHP es un Preproccessor y sólo funciona antes de que se envíe la página a cabo.

Un claro ejemplo de esto es en el siguiente código, donde runCommand() no se ejecutará cuando el usuario pulsa el botón.

<a href="<?php runCommand(); ?>">Click Me!</a>

como lo haría en Javascript

<a href="javascript:runCommand();">Click Me!</a>

He visto muchas preguntas como esta que son de gente nueva que simplemente no se dan cuenta de ‘cómo’ PHP funciona.

Mi pregunta es: Donde es un gran recurso que explica cómo PHP funciona?.

Quiero ser capaz de redirigir a la gente a una página en la que puede obtener de ellos en el camino correcto y saber lo que es ser un Preproccessor medios.

(Esto también me permite ser perezoso y no tener que escribir una explicación cada vez que aparece, pero no se lo digas a nadie!)

Si usted no sabe de un lugar que describe esta bien, siéntase libre de proporcionar su propia interpretación.

Como Carl Smotricz señala, hay una parte de PHP que puede ser utilizado fuera del navegador. Pero estoy hablando fundamentalmente en un entorno Apache cuando un usuario solicita una página web, y espera recibir algo a cambio, por lo general en HTML.

  • La distinción es más sencillo que eso. PHP se ejecuta del lado de servidor, JavaScript se ejecuta del lado cliente.
  • PHP o Preprocesador? Googleando Preprocesador o PHP le dará lo que necesita.
  • Sí, pero a menudo los principiantes no llegar a ese punto.
  • No quiero ser sarcástico, pero aquí es un gran recurso que explica cómo PHP funciona —————————–> php.net/manual/en
InformationsquelleAutor Tyler Carter | 2010-01-09

8 Comentarios

  1. 28

    Wikipedia siempre es un gran recurso de información. Sugiero:

    Scripting del lado del servidor

    vs

    Secuencias de comandos de cliente


    Y Wikipedia también tiene fotos:

    Por qué PHP script no es workig en un navegador web?

    • Añadir a que (es de la vieja escuela ‘CGI’ días, pero podría ser un buen primaria para algunos): garshol.priv.no/download/text/http-tut.html
    • Es también importante que los JS en el DOM es basado en eventos, frente a PHP por lotes de estilo. Esto es igualmente importante de por qué el JS ejemplo funciona cómo lo hace, y me sorprende que nadie lo haya mencionado.
  2. 11

    Podría ser que tú eres el que no entiende cómo PHP funciona. PHP es un lenguaje pleno de intérprete, y es completamente posible para ejecutar scripts de PHP sin necesidad de un navegador, fuera de un servidor Web: En la línea de comandos o en un IDE o de otro entorno GUI.

    El PHP preprocesador de la que usted habla es sólo la función de un módulo de Apache que se llama en el intérprete de PHP para este propósito limitado.

    • La mayoría de las preguntas que se relaciona en el uso con un servidor web. La que se especifica que en la pregunta.
    • Si bien esto es cierto, el contexto en el que el 99,9% de todos los PHP-debates giran en torno a es scripting del lado del servidor. Scripting del lado del servidor es, después de todo, lo que PHP fue diseñado para. Suponiendo que PHP == scripting del lado del servidor, por defecto, es muy práctico.
    • Estoy de acuerdo, el preprocesador parte es algo anacrónico en este punto, y principalmente es en el nombre para hacer el acrónimo de trabajo.
    • +1 stackoverflow.com/tags/php/info «SAPI de apoyo» de la sección.
  3. 2

    El código PHP es interpretado en el lado del servidor de un solo la salida de su código PHP será enviado al cliente.

    Así que si un archivo PHP se solicita, el servidor web envía el código de PHP para el intérprete de PHP, espera para la salida y, a continuación, envía los resultados de vuelta al cliente.

    • Oh, puedo tener una muestra de HTML con el código «detrás»? Aprendo asp.net el html y el código detrás se encuentran en diferentes «páginas» 😡
  4. 2

    En resumen, PHP pertenece el servidor, generalmente, a continuación, salidas de HTML pero no se trata aquí de que (o al menos, no sólo para eso).
    El navegador del usuario «ve» lo único que queda después de php hizo su cosa.

    Javascript pertenece el cliente (también conocido como navegador): por lo general se maneja el DOM creado por analizar el HTML, que es (posiblemente) producidos por la ejecución de PHP. Javascript puede comportarse de manera diferente en los distintos navegadores (todos los que ha escrito scripts JS saber acerca de la cruz-problemas con el navegador, ¿te acuerdas de IE6?)
    Javascript no puede manejar la base de datos por sí mismo; tiene que depender de una severa del lado del lenguaje (php, tal vez? 😉 (excepto si hablando de node.js)

    Por CIERTO, AJAX puede ser una buena referencia para entender qué es exactamente lo de PHP y de lo que JS no.

  5. 1

    Una distinción importante es que el JavaScript en un navegador es controlado por eventos. Es por eso que un controlador de clic no se ejecuta de inmediato, ya que la carga de la página, por ejemplo. El javascript no podría estar esperando para responder a que haga clic en cualquiera, si no fuera por el evento impulsado por el estilo de dom programación.

    Yo realmente no creo que esto es lo que se entiende por el término «preprocesador’. el cliente/servidor de lado la distinción es más importante. Por ejemplo, ¿has oído hablar de cualquier otro servidor de lado el lenguaje que se conoce como un preprocesador al realizar las mismas tareas que PHP?

  6. 0

    php responde a las solicitudes http en el servidor típico lado del escenario. el navegador lee esta respuesta, y es responsable de la prestación y ejecución de cualquier dinámica adicional scripts incrustados en la respuesta en el lado del cliente. que es, esencialmente, la división del trabajo en dicho escenario.

  7. 0

    PHP es el lenguaje de comandos del servidor que significa que todo el código php es ejecutado antes de que la página se envía al cliente. Por eso nunca vas a ver

    <?php ... ?> 

    en el código fuente de la página.

    Alto nivel de abstracción…
    Usted puede considerar el servidor web (hardware) como componente de cuatro partes diferentes. Servidor web(software, por ejemplo Apache), sistema de Archivos, base de datos y PHP plugin.

    Así, por ejemplo, cuando se envía la solicitud de página (para algunos la página …/example.php) para el servidor web Apache va a tratar de encontrar la página en el archivo del sistema y si la página existe él va a llamar a php plugin se ejecuta todos los

    <?php ... ?> 

    código (por supuesto incluyendo consultas db). Después de que la página se envía de vuelta al cliente donde se puede manipular con la página a través de JavaScript, diseñado a través de CSS…

    Más en: https://www.youtube.com/watch?v=PemsuAfc7Jw

  8. 0

    La razón por la que los scripts PHP no está trabajando en un navegador web es sólo porque los navegadores no soportan PHP (al menos yo no conozco a ninguno). Este hecho no es tan trivial como uno puede pensar.

    Y puede sonar molesto, así que echa un vistazo a las especificaciones de HTML en el sitio web del W3C de HTML 5 y HTML 4.01 (porque tiene más detallado de ejemplos). ¿Qué se puede encontrar? Los scripts pueden ser escritos en otros idiomas que no sean JavaScript!

    Aquí es un ejemplo de HTML 4.01 documentación (sección titulada Especificar el lenguaje de secuencias de comandos).


    (…)

    He aquí una más interesantes de la ventana controlador:

    <SCRIPT type="text/javascript">
          function my_onload() {
             . . .
          }
    
          var win = window.open("some/other/URI")
          if (win) win.onload = my_onload
    </SCRIPT>

    En Tcl esto se parece a:

     <SCRIPT type="text/tcl">
         proc my_onload {} {
           . . .
         }
         set win [window open "some/other/URI"]
         if {$win != ""} {
             $win onload my_onload
         }
     </SCRIPT>

    Script escrito en Tcl es perfectamente O. K. en HTML! ¿Qué acerca de PHP? HTML5 documentación dice:

    Un agente de usuario se dice que es compatible con el lenguaje de secuencias de comandos si cada
    componente del bloque de secuencia de comandos del tipo ASCII no distingue mayúsculas de minúsculas
    partido para el componente correspondiente en el tipo MIME de la cadena de de un
    lenguaje de scripting que el agente de usuario implementa.
    (…) Los agentes de usuario pueden admitir otros tipos MIME para otros idiomas,
    pero no debe apoyar a otros tipos MIME para los idiomas de la lista
    por encima de. Los agentes de usuario no son necesarios para apoyar a los idiomas que se indican
    por encima de.

    Por lo tanto es sólo para el navegador web (agente de usuario) si se va a apoyar PHP o no. Jugando con el W3C ejemplo, PHP consciente navegador web podría haber aceptado algo como esto.

    <script type="text/php">
          function my_onload() {
             . . .
          }
    
          $win = $window->open('some/other/URI');
          if ($win !== false)
              $win->onload = 'my_onload';
    </script>

    Así, la razón por la que la gente este tipo de preguntas no es que ellos no saben cómo PHP funciona. Es porque no entienden la tecnología web en general. Ellos fallan en el punto, que requiere la comprensión de qué, dónde y por qué se supone que para ser ejecutado.

Dejar respuesta

Please enter your comment!
Please enter your name here