Estou precisando incluir um arquivo php, executa-lo, mas ao invés de mostrar o conteúdo dele(echo, print, etc), quero guardar em uma varável para mostrar depois.
Vou dar um exemplo:
Temos index.php, que inclui componente.php e template.php
No template, eu posso chamar o conteudo(echo, print) de componente, logo, seria mais lógico eu incluir esse componente na parte em que eu desejar no meu template, certo?
Sim, se não fosse por um motivo: esse component, altera algumas váriaveis que são usadas no template, antes que o template peça para mostrar o componente, então, o problema é certo: o componente não alteraria as variáveis necessárias para serem usadas em template.
Esse exemplo é exatamente o que eu preciso, mas não sei se ficou muito claro, então la vai outro:
Imagine-se criando um template para um CMS, joomla por exemplo.
Ele tem 2 camadas(só exemplo, sei que tem mais): template e componente
Componente, nada mais é que o conteúdo do template e template, é a "moldura" do site(header, footer, menu e content, onde será mostrado o componente)
Esse componente, além de retornar um html com o conteudo da área "content", ele altera algumas coisas que são mostradas dentro de <head</head>, como o titulo.
Então, component, deve ser incluido antes de template.
Mas ai, se eu der um echo dentro de component, ele aparecerá antes mesmo de abrir o <html>, então o que eu teria que fazer, é ao ivés de exibir, guardar todo html numa variável e depois chama-la pelo template. Mas ai que está o problema, isso deixaria a parte do componente um pouco confusa de inicio, e eu não quero isso. O que eu quero é poder dar echo, print, etc nesse arquivo componente.
A solução seria incluir esse arquivo, mas sem deixar que ele exiba qualquer coisa.
Só que não da pra ser com um fopen pro exemplo, porque o arquivo componente também terá php e esse php terá de ser executado.
Então, será que existe uma função que faço isso, ou quem sabe, uma gambiarra?
Question
vini_loock
Olá,
Estou precisando incluir um arquivo php, executa-lo, mas ao invés de mostrar o conteúdo dele(echo, print, etc), quero guardar em uma varável para mostrar depois.
Vou dar um exemplo:
Temos index.php, que inclui componente.php e template.php
No template, eu posso chamar o conteudo(echo, print) de componente, logo, seria mais lógico eu incluir esse componente na parte em que eu desejar no meu template, certo?
Sim, se não fosse por um motivo: esse component, altera algumas váriaveis que são usadas no template, antes que o template peça para mostrar o componente, então, o problema é certo: o componente não alteraria as variáveis necessárias para serem usadas em template.
Esse exemplo é exatamente o que eu preciso, mas não sei se ficou muito claro, então la vai outro:
Imagine-se criando um template para um CMS, joomla por exemplo.
Ele tem 2 camadas(só exemplo, sei que tem mais): template e componente
Componente, nada mais é que o conteúdo do template e template, é a "moldura" do site(header, footer, menu e content, onde será mostrado o componente)
Esse componente, além de retornar um html com o conteudo da área "content", ele altera algumas coisas que são mostradas dentro de <head</head>, como o titulo.
Então, component, deve ser incluido antes de template.
Mas ai, se eu der um echo dentro de component, ele aparecerá antes mesmo de abrir o <html>, então o que eu teria que fazer, é ao ivés de exibir, guardar todo html numa variável e depois chama-la pelo template. Mas ai que está o problema, isso deixaria a parte do componente um pouco confusa de inicio, e eu não quero isso. O que eu quero é poder dar echo, print, etc nesse arquivo componente.
A solução seria incluir esse arquivo, mas sem deixar que ele exiba qualquer coisa.
Só que não da pra ser com um fopen pro exemplo, porque o arquivo componente também terá php e esse php terá de ser executado.
Então, será que existe uma função que faço isso, ou quem sabe, uma gambiarra?
Edited by vini_loockLink to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.