Webmaster - Mostrar el código php/xhtml de páginas web

Mayo 2017

Si deseas que los internautas que visitan tu página web puedan ver el código fuente de tus archivos (PHP o HTML), existen varias soluciones.


En php


Mostrar el código php


La función highlight_file permite mostrar el código php de un archivo.

Ejemplo para mostrar el código de index.php:

highlight_file(index.php);

También podemos utilizar la constante __FILE__ para mostrar el código fuente del archivo actual.

Es conveniente utilizar la función exit para no ejecutar el resto del script.

Es posible juntar estos diferentes fragmentos de código para mostrar el código fuente bajo cierta condición, aquí por ejemplo si la variable get “source” existe:

//Si la variable get source existe
if(isset($_GET['source']))
    {
//se muestra el código php y detenemos el script con exit
highlight_file(__FILE__);
        exit;
    }

Atención: Ten cuidado de no mostrar tu contraseña al utilizar este truco.

El inconveniente de este truco es que sólo colorea el código php y no el html.
Para colorear el código html con una librería javascript, ver:
Coloreado de sintaxis en páginas web
Para mayor información acerca de la función highlight_file: http://php.net/highlight_file

Sin embargo, el código html generado por esta función es invalido, ya que no coloca doctype, etiquetas body, html…

He creado una función que permite mostrar la fuente sin que la página deje de ser valida.

Esta debe ser utilizada al medio del código html, después de la etiqueta body.
Si lo deseamos, podemos adaptarla fácilmente.

función mostrar_codigo_php()
{
    if (isset($_GET['source']))
      {
        echo '<p><a href="',$_SERVER['PHP_SELF'],'">Retorno</a></p>';
        echo '<p>Este es el código php del archivo:</p>';
        $page=highlight_file($_SERVER['SCRIPT_FILENAME'], TRUE);
        $page=str_replace(
          array('<code>','/code>','&nbsp;','</font>','<font color="'),
          array('<pre style="padding:1em;border:2px solid black;overflow:scroll">
','/pre>',' ','</span>','<span style="color:'),$page);
        echo $page;
        echo '<p><a href="',$_SERVER['PHP_SELF'],'">Retorno</a></p>';
        echo '</body></html>';
        exit;
      }
  }

Mostrar el código html

Podemos utilizar view-source para mostrar el código html de la página. Por ejemplo, este enlace: <code><a href="view-source:http://es.ccm.net/">El código html de CCM</a>


Mostrará el código html de la página de inicio de ccm.

La variable php $_SERVER['PHP_SELF'] corresponde al nombre del archivo y a su ruta de acceso en relación a la raíz del sitio web.

Por ejemplo, si escribes este código

<?php echo $_SERVER['PHP_SELF'];?>

en el archivo "index.php" que se encuentra en un directorio llamado “directorio/” de tu sitio web, el resultado será:

/directorio/index.php

Podemos combinar estos dos trucos para mostrar el código html de un archivo escribiendo:

<a href="view-source:la_direccion_de_tu_sitioweb<?php echo $_SERVER['PHP_SELF'];?>
">Source html</a>

En html


Basta con utilizar el truco anterior indicando el nombre del archivo.
Por ejemplo:

<a href="view-source: la_direccion_de_tu_sitioweb/index.html">Código fuente
de la página de inicio</a>

Informaciones


El truco de view-source no funciona con rutas relativas
Este código no funcionará:
<a href="view-source:index.html">Code de la page d'accueil.</a>

El hecho de utilizar la variable PHP_SELF para mostrar el nombre del archivo equivale a lo mismo, pero creo que es más práctico, especialmente si como yo utilizas una solo pagina fuente.

Nota de Sylvain:
Se supone que view-source funciona en todos los navegadores recientes, pero en mi caso sólo funciona con Firefox.

Ver también


Consulta también

Publicado por Carlos-vialfa. Última actualización: 10 de noviembre de 2008 a las 03:06 por Carlos-vialfa.
El documento «Webmaster - Mostrar el código php/xhtml de páginas web» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.