Incluir conteúdo inteiro de um arquivo e eco-lo
Pergunta
Eu preciso echo todo o conteúdo do arquivo incluído. Eu tentei a seguir:
echo "<?php include ('http://www.example.com/script.php'); ?>";
echo "include (\"http://www.example.com/script.php\");";
Mas nem obras? O PHP suportar isso?
Solução
Basta fazer:
include("http://www.mysite.com/script.php");
Ou:
echo file_get_contents("http://www.mysite.com/script.php");
Notas:
- Isto pode abrandar sua página devido a latência da rede ou se outro servidor está lento.
- Isto requer
allow_url_fopen
que estar ligado para sua instalação PHP. Alguns anfitriões desligá-lo. - Isto não vai dar-lhe o código PHP, ele vai dar-lhe a saída de HTML / texto.
Outras dicas
caminho mais curto é:
readfile('http://www.mysite.com/script.php');
Isso vai diretamente a saída do arquivo.
eco imprime algo para o buffer de saída - não é analisado pelo PHP. Se você quiser incluir algo, apenas fazê-lo
include ('http://www.mysite.com/script.php');
Você não precisa imprimir o código-fonte PHP, quando você está o código-fonte PHP escrito.
Não sei o que você está pedindo, mas você realmente não pode incluir algo via http e esperar para ver o código, uma vez que o servidor irá analisar o arquivo.
Se "script.php" é um arquivo local, você pode tentar algo como:
$file = file_get_contents('script.php');
echo $file;
Esta não pode ser a resposta exata para sua pergunta, mas por que você não apenas perto a instrução echo, inserir sua declaração de incluir, e em seguida, adicione uma nova declaração de eco?
<?php
echo 'The brown cow';
include './script.php';
echo 'jumped over the fence.';
?>
Matt está correto com readfile()
mas também pode ser útil para alguém para olhar para as funções de manipulação de arquivo PHP
entrada manual para fpassthru
<?php
$f = fopen($filepath, 'r');
fpassthru($f);
fclose($f);
?>