¿Cómo agregar contenido a PHP incluye archivos?

Ok, es posible que no tenga el mejor título, pero intentaré dar una mejor explicación.

Supongamos que está utilizando PHP include () para estructurar su sitio web:

Header.php

     Website      

Footer.php

    

Luego una página de muestra:

Index.php

   

Básicamente, solo quiero saber si hay una manera de cargar alguna secuencia de comandos en mi sección de encabezado.

Me gustaría lograr algo como ASP.NET y su página maestra, donde puedo agregar contenido al encabezado. por ejemplo

    

En index.php , antes de incluir header.php , puede establecer una matriz para sus scripts como:

header.php

 < ?php if(!isset($scripts)) $scripts = array(); ?> < !DOCTYPE html>     Website     < ?php foreach($scripts in $script): ?>  < ?php endforeach;?>   

index.php

 < ?php $scripts = array('Scripts/somescript.js', 'http://server.com/path/anoterscript.js); ?>  < ?php include ('includes/header.php'); ?> 
< ?php include ('includes/footer.php'); ?>

Sí, puedes hacer esto:

index.php

 < ?php // Wanted page title $title = "some"; // JS Files.. $scripts = array(); $scripts[] = ''; $scripts[] = ''; // Include header include ('includes/header.php'); 

header.php

 < ?php echo $title ?> < ?php echo implode("\n",$scripts) ?> 

Por supuesto, las variables podrían nombrarse como desee y contener cualquier dato. Lo principal es que puedes pasarlos entre archivos como mostré.

¿Desea agregar código PHP al encabezado? Luego puede agregar su código entre tags (o tags si las tags cortas están habilitadas), pero consideraría simplemente llamar a una inclusión entre las tags PHP y tener la lógica en eso incluir.

Otra opción podría ser un motor de plantillas, por ejemplo, Smarty . En la mayoría de los motores de plantillas, puede definir sus propias funciones y llamarlas desde las plantillas.

Podrías hacer esto:

 // content.php < ?php $head = "     Website     "; $foot = "\n\n"; ?> // index.php < ?php include 'includes/content.php'; $dom = new DOMDocument; @$dom->loadHTML($head); $hd = $dom->getElementsByTagName('head'); $hd = $hd->item(0); $script = $dom->creatElement('script'); $scriptAttr = $dom->createAttribute('src'); $scriptAttr->value= 'Scripts/somescript.js'; $script->appendChild($scriptAttr); $hd->appendChild($script); echo $dom->saveHTML().$foot; ?> 

La otra opción es usar variables para separar tu código y luego solo echo porciones. Eso es lo que haría. Es tecnológicamente más rápido. Prueba esto:

 // content.php < ?php $headTop = "     Website  \n "; $headBottom = "\n   "; $foot = "\n\n"; ?> // index.php < ?php include 'includes/content.php'; echo "$headTop  < ?php foreach($styles as $style): ?>  < ?php endforeach; ?>  < ?php foreach($scripts as $script): ?>  < ?php endforeach;?>   

index.php

 < ?php $title = "some dynamic title"; $scripts = array('js/somescript.js', 'http://server.com/anoterscript.js'); $styles = array('css/somestyle.css', 'css/anotherstyle.css'); require_once ('header.php'); ?> 
< ?php require_once('footer.php'); ?>