Ir para conteúdo

Arquivado

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

vinicvo

Armazenar trechos html em variável php

Recommended Posts

Olá.

Essa pode parecer uma dúvida meio besta pra vocês, mas é um problema que eu venho tentado resolver há muito tempo, mas não encontro solução.

Eu gostaria de saber como eu faço para armazenar um trecho html em uma variável php. Por exemplo:

 

Colocar todo esse trecho html abaixo em uma única variável php

<div class="box">Conteúdo da div..conteúdo da div <?php echo $titulo; ?></div>

Eu tentei usar o ob_get_contents. Contudo, esse método imprime somente o código puro. Ele não mostra os trechos em php <?=echo $titulo; ?>.

Alguém conhece algum método que me permita fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

Essa pode parecer uma dúvida meio besta pra vocês, mas é um problema que eu venho tentado resolver há muito tempo, mas não encontro solução.

Eu gostaria de saber como eu faço para armazenar um trecho html em uma variável php. Por exemplo:

 

Colocar todo esse trecho html abaixo em uma única variável php

 <div class="box">Conteúdo da div..conteúdo da div <?php echo $titulo; ?></div>

Eu tentei usar o ob_get_contents. Contudo, esse método imprime somente o código puro. Ele não mostra os trechos em php <?=echo $titulo; ?>.

Alguém conhece algum método que me permita fazer isso?

 

<?
$html = <<<HTML
<html>
    <head>
        <title>%s</title>
        <script type="text/javascript">
            alert( '%s' );
        </script>
    </head>
    <body>
        <div><span class='titulo'>%s</span><span class='conteudo'>%s</span></div>
    </body>
</html>
HTML;

printf( $html , "Título da página" , "Alerta do javascript" , "Título da div" , "O conteúdo da sua DIV" );

:P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu ainda...na verdade eu tenho um ARQUIVO.html o qual eu queria carregar na forma de uma string. Como o faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo com essa função, as tags php que estão nesse arquivo não vão para a string. Como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo com essa função, as tags php que estão nesse arquivo não vão para a string. Como resolver isso?

 

Certo amigo, ficamos em ambiguidade agora:

 

1. Você quer que todo o conteúdo do seu arquivo, incluindo as tags php vão para sua string OU

2. Você quer que todo o conteúdo seja processado pelo PHP e somente então ele vá para sua string ?

 

Vou assumir que você quer que o conteúdo seja processado porque a dica do ~TiuTalk~ resolve a primeira situação. Então para o teste, vou usar o arquivo teste.php com o seguinte conteúdo

 

teste.php

 <html>
     <head>
         <title>teste</title>
     </head>
     <body>
         <p><?php printf( "Isso é um teste" );?></p>
     </body>
 </html>

Se você tiver allow_url_fopen = On habilitado no seu php.ini ou se você puder usar ini_set( "allow_url_fopen" , "On" ) você pode tentar o código abaixo:

 $content = "";
 
 if ( ( $fh = fopen( "http://localhost/teste.php" , "r" ) ) ){
     while ( ( $str = fread( $fh , 1024 ) ) ) $content .= $str;
     fclose( $fh );
 
     if ( !empty( $content ) )
         printf( "O conteudo do arquivo é:n%s" , $content );
     else
         printf( "O arquivo está vazion" );
 } else {
     printf( "Falha ao abrir o arquivon" );
 }

A saída do código acima será:

 O conteudo do arquivo é:
 <html>
     <head>
         <title>teste</title>
     </head>
     <body>
         <p>Isso é um teste</p>
     </body>
 </html>

Porém, se você não tiver habilitado ou não tiver como habilitar o allow_url_fopen, então cURL é a melhor saída:

 $content = "";
 
 if ( ( $ch = curl_init( "http://localhost/teste.php" ) ) ){
     curl_setopt( $ch , CURLOPT_RETURNTRANSFER , 1 );
     $content = curl_exec( $ch );
 
     curl_close( $ch );
 
     if ( !empty( $content ) )
         printf( "O conteudo do arquivo é:n%s" , $content );
     else
         printf( "O arquivo está vazion" );
 } else {
     printf( "Falha ao abrir o arquivon" );
 }

A saída será exatamente a mesma que no primeiro exemplo. Agora, assumindo que você quer que, inclusive as tags php, vão para a sua string, é só fazer o que ~TiuTalk~ o falou:

 

 $content = file_get_contents( "teste.php" );
 
 if ( !empty( $content ) )
     printf( "O conteudo do arquivo é:n%s" , $content );
 else
     printf( "O arquivo está vazion" );

A saída do código acima será:

 

 O conteudo do arquivo é:
 <html>
     <head>
         <title>teste</title>
     </head>
     <body>
         <p><?php printf( "Isso é um teste" );?></p>
     </body>
 </html>

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.