Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dimiguel

Variável com require()

Recommended Posts

Será que alguém pode me ajudar?

Tem tempo que eu tento criar uma variável com o require, algo tipo:

PHP [/tr][tr]<?php

$variavel = require_once("arquivo.html");

echo $a;

?>

[/tr]

É que preciso fazer uma verificação no arquivo HTML através de algumas expressões e substituí-las através do eregi_replace.

Ou alguém sabe alguma outra forma?

Agradeço a atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar uma combinação de implode e file, só que o arquivo não será inetrpretado pelo PHP quando for exibido:

 

$variavel = implode("", file('arquivo.html'));

 

você pode usar as funções ob*:

 

ob_start();

require_once("arquivo.html");

$variavel = ob_get_contents();

ob_end_flush();

 

*Não testei dessa forma, mas o princípio é esse

 

Mais sobre as funções:

 

http://br.php.net/file

http://br.php.net/implode

http://br.php.net/ob_start

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar uma combinação de implode e file, só que o arquivo não será inetrpretado pelo PHP quando for exibido:$variavel = implode("", file('arquivo.html'));você pode usar as funções ob*:ob_start();require_once("arquivo.html");$variavel = ob_get_contents();ob_end_flush();*Não testei dessa forma, mas o princípio é esseMais sobre as funções:http://br.php.net/filehttp://br.php.net/implodehttp://br.php.net/ob_start

Tash, o lance é o seguinte:Estou trabalhando de forma a deixa a lógica à parte do design (isso com classes). Então eu creio um arquivo com as classes (lógica) e outro(s) com o design (templates). Já fiz isso algumas vezes, porém de forma amadora.Daí tentar criar uma variável com o arquivo.Você conhece alguma forma mais prática e profissional de se fazer isso?Agradeço ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo, eu mesmo já criei uma classe de templates, e eu usava o file... só que você deve saber que passar uma ereg (o certo seria uma preg) em um arquivo de tamanho que pode ser grande não é muito eficiente...

 

Processe o arquivo e substitua as variáveis linha por linha, para por o arquivo em um array você usa o file(), depois usa um foreach ou um for para percorrer a matriz.... a maioria massante das classes de template faz dessa forma

 

function parse_tpl($tpl_name) {    $template = file('arquivo.tpl');    $output = NULL;    foreach ($template as $n=>$l) {        $output .= preg_replace("", "", $l);    }    return $output;}

É algo dessa forma, não vejo nada de anti-profissional nisso

 

Procure ver como as classes são feitas e tirar idéias: http://www.phpclasses.org

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo, eu mesmo já criei uma classe de templates, e eu usava o file... só que você deve saber que passar uma ereg (o certo seria uma preg) em um arquivo de tamanho que pode ser grande não é muito eficiente...

 

Processe o arquivo e substitua as variáveis linha por linha, para por o arquivo em um array você usa o file(), depois usa um foreach ou um for para percorrer a matriz.... a maioria massante das classes de template faz dessa forma

 

function parse_tpl($tpl_name) {    $template = file('arquivo.tpl');    $output = NULL;    foreach ($template as $n=>$l) {        $output .= preg_replace("", "", $l);    }    return $output;}
É algo dessa forma, não vejo nada de anti-profissional nisso

 

Procure ver como as classes são feitas e tirar idéias: http://www.phpclasses.org

Tash,

Valeu pela função cara, é isso mesmo que eu preciso.

Só tem um detalhe, quando eu a executo, o retorno está dando errado - o resultado aparece entre colchetes "[]". Veja como ficou o código:

PHP [/tr][tr]<?php

function parse_tpl($tpl_name) {

$template = file('ExibeClientesNovos.html');

$output = NULL;

foreach ($template as $n=>$l) {

$output .= preg_replace("[!--RAZAOSOCIAL--]", "TESTE", $l);

}

return $output;

}

 

echo parse_tpl();

?>

[/tr]

 

Neste caso o resultado aparece assim:

[TESTE]

 

Erro detectado! Foi só tirar os colchetes da expressão a ser procurada!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.