Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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?
Use a função file_get_contents() para isso :)
Mesmo com essa função, as tags php que estão nesse arquivo não vão para a string. Como resolver isso?
>
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"](http://localhost/teste.php%22) , "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"](http://localhost/teste.php%22) ) ) ){
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>
>
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
Alguém conhece algum método que me permita fazer isso?
<?
$html = <<<HTML
:P