dimiguel 0 Denunciar post Postado Fevereiro 16, 2005 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
Tash 5 Denunciar post Postado Fevereiro 16, 2005 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
dimiguel 0 Denunciar post Postado Fevereiro 16, 2005 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_startTash, 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
Tash 5 Denunciar post Postado Fevereiro 16, 2005 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
dimiguel 0 Denunciar post Postado Fevereiro 16, 2005 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]<?phpfunction 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