Incluir solo una "parte" de un include en PHP.

Buenas de nuevo,

Si algo estaba deseando, era poder retornar solo 1 determinada función en un include(). A lo que me refiero es, imaginémonos que tenemos un archivo .php que tiene de todo (html,css,js,php) en 1.. PERO de ese archivo solo necesitamos una función llamada blablabla(). ¿Como podemos incluir ese archivo y esa función sin las demás cosas ? Fácil (no tanto).


Controlando el include() ..

Tenemos el archivo incluyeme.php que es un archivo "normal" y "corriente"....
<?php

if(!empty($control)&&$control==='true'){return;}

function blabla($str){return nana($str);}

function nana($str){return $str;}

function FueritaDeAca(){die('Pendejos everywhere!!');}

FueritaDeAca();
?>

<h1>Hacking attempt!</h1>
<script>alert("Soy juanker!!");</script>
<?php die("wtf"); ?>

Y de ese archivo, solo queremos la función blabla() que a su vez llama a nana(). Pero, no queremos el resto de mierda script.

Bien, si os fijáis comprobamos si la variable $control esta vacía y si es = a "true". Esto es esencial. Si cumple con los requisitos, hacemos return.

Ahora, tenemos nuestro archivo okay.php. Este se encargara de incluir a incluyeme.php.
<?php
$control='true'; include('function.php');
echo blabla('HOLA!!!!');
?>

El resultado sera:
HOLA!!!!

Sin nada añadido (ni h1, ni alert, ni die). A TENER EN CUENTA sin embargo, todas las funciones estarán disponibles (por tanto se incluye todo el archivo). Simplemente el código de procedimiento (lo que no esta en una función) no sera ejecutado. Ni el html, ni el javascript ni nada.

Obviamente no hace falta decir que esto esta mal. Normalmente (las personas normales) tendrás todo estructurado en archivos separados y de tal forma que ni siquiera te haga falta hacer un include tan estúpido. El caso es que a veces toca trabajar con CMS's (SMF) que "dan pena" con sus "sistemas de mods" (si es que se le puede llamar así) y toca crear cosas raras para que no tengas que sufrir las consecuencias de editar directamente archivos de su source.

Saludos

Comentarios

Entradas populares de este blog