Jump to content


Photo

Getphpoutput( $phpcode )


  • Faça o login para participar
2 replies to this topic

#1 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 07/03/2007, 14:47

NOTA: Esta função foi tirada da lista de discussão php-especialistas.

Créditos para o autor Max Ferreira

Segue o código e exemplo de utilização:

<?php

// PHP Compatibility Code
if (!function_exists('file_put_contents')) {
	function file_put_contents($filename, $data) {
		$file = fopen($filename, 'wb');
		$return = fwrite($file, $data);
		fclose($file);

		return $return;
	}
}

/**
 * Executes the PHP code sent as argument and return the generated string
 * Code by: Max Ferreira
 *
 * @access public
 * @param string $phpCode PHP Code to be executed
 * @return string Generated output
 */
function getPHPOutput($phpCode) {
	$tmpFileName = tempnam('/tmp', 'PHP_INCLUDE');
	file_put_contents($tmpFileName, $phpCode);

	ob_start();
	include $tmpFileName;
	$result = ob_get_contents();
	ob_end_clean();

	@unlink($tmpFileName);
	return $result;
}

?>


Exemplo de utilização:

<?php

require_once "func.getPHPOutput.php";

$text = 'lá vai o texto: <?php echo "texto interpretado pelo php";?'.'>';
echo getPHPOutput($text);

?>


Espero ter ajudado!

[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>

#2 Allan Carvalho

Allan Carvalho

    Òó :: ^^

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP
  • Interesses:Um PC novo e rápido. ^^

Posted 18/07/2007, 03:23

Guilherme, o código é perfeito! Exatamente oque eu procurava.


Só tem um probleminha/inconveniente: Quando é passado por um AJAX ele não retorna nada.

No caso eu estou fazendo: echo getPHPOutput($switches[switches]);
Aí é que está o problema: quando passa pelo script eu não sei oque acontece que nada é retonado.

Com uma requisição normal (sem a função) echo urlencode($switches[switches]); ele retorna, porém , como texto e só interpreta o html deste.

Sabe oque pode ser?

Obrigado!


P.S.: $switches[switches] é um valor que é da tabela switches no MySQL com os códigos escritos em PHP para quem não compreendeu.


---------------------
EDITADO

Pessoal pra quem tiver problemas como eu tive lembrem-se de dar um CHMOD 777 pra funcionar. Pra isso, eu coloquei no diretório em que estiver a função e comprimi o código (depois de muito bater a cabeça!).
Quem quiser:

<?php

function getPHPOutput($phpCode) {
$tmpFileName = rand().'.php';
file_put_contents($tmpFileName, $phpCode);
ob_start();
include $tmpFileName;
$result = ob_get_contents();
ob_end_clean();
@unlink($tmpFileName);
return $result;
}

?>


Não esqueçam: CHMOD 777 (só pra quem tiver problemas).


Flw, pessoal! Vlw!


Fui!

Edição feita por: Allan Carvalho, 19/07/2007, 23:32.

Nome: Allan V. Ferreira de Carvalho.
Localidade: Campinas - SP
Linguagem de desenvolvimento: XHTML | CSS (Tableless) | JavaScript | AJAX | PHP
Contatos: brkamikasecps@gmail.com | brkamikasecps@hotmail.com

Posted Image


#3 Serafin

Serafin

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino
  • Localidade:Petrolina-PE
  • Interesses:Tenho Interesses em PHP, JAVA, C++, JAVASCRIPTS, MYQL, ETC

Posted 11/10/2007, 22:56

Guilherme, o código é perfeito! Exatamente oque eu procurava.


Só tem um probleminha/inconveniente: Quando é passado por um AJAX ele não retorna nada.

No caso eu estou fazendo: echo getPHPOutput($switches[switches]);
Aí é que está o problema: quando passa pelo script eu não sei oque acontece que nada é retonado.

Com uma requisição normal (sem a função) echo urlencode($switches[switches]); ele retorna, porém , como texto e só interpreta o html deste.

Sabe oque pode ser?

Obrigado!


P.S.: $switches[switches] é um valor que é da tabela switches no MySQL com os códigos escritos em PHP para quem não compreendeu.


---------------------
EDITADO

Pessoal pra quem tiver problemas como eu tive lembrem-se de dar um CHMOD 777 pra funcionar. Pra isso, eu coloquei no diretório em que estiver a função e comprimi o código (depois de muito bater a cabeça!).
Quem quiser:

<?php

function getPHPOutput($phpCode) {
$tmpFileName = rand().'.php';
file_put_contents($tmpFileName, $phpCode);
ob_start();
include $tmpFileName;
$result = ob_get_contents();
ob_end_clean();
@unlink($tmpFileName);
return $result;
}

?>


Não esqueçam: CHMOD 777 (só pra quem tiver problemas).


Flw, pessoal! Vlw!


Fui!



Guilherme, o código é perfeito! Exatamente oque eu procurava.


Só tem um probleminha/inconveniente: Quando é passado por um AJAX ele não retorna nada.

No caso eu estou fazendo: echo getPHPOutput($switches[switches]);
Aí é que está o problema: quando passa pelo script eu não sei oque acontece que nada é retonado.

Com uma requisição normal (sem a função) echo urlencode($switches[switches]); ele retorna, porém , como texto e só interpreta o html deste.

Sabe oque pode ser?

Obrigado!


P.S.: $switches[switches] é um valor que é da tabela switches no MySQL com os códigos escritos em PHP para quem não compreendeu.


---------------------
EDITADO

Pessoal pra quem tiver problemas como eu tive lembrem-se de dar um CHMOD 777 pra funcionar. Pra isso, eu coloquei no diretório em que estiver a função e comprimi o código (depois de muito bater a cabeça!).
Quem quiser:

<?php

function getPHPOutput($phpCode) {
$tmpFileName = rand().'.php';
file_put_contents($tmpFileName, $phpCode);
ob_start();
include $tmpFileName;
$result = ob_get_contents();
ob_end_clean();
@unlink($tmpFileName);
return $result;
}

?>


Não esqueçam: CHMOD 777 (só pra quem tiver problemas).


Flw, pessoal! Vlw!


Fui!




Olá Pessoal, gostaria de saber para que serve esta função ou onde eu poria utilizá-la?
"!@#$%¨&*()_+NCMR+_)(*&¨%$#@!"




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq