如何从不同的php模块组装php文件?

时间:2014-08-26 11:04:18

标签: php

我很确定我没有得到这个概念,但我被卡住了。 任务: 从几个php模块组装一个php文件。假设我们在服务器上有一个file1.php和一个file2.php。我现在想把这两个文件组装到第三个php文件,让我们把它叫做alltwo.php。该文件(alltwo.php)将作为下载提供。 我可以通过file_put_content快速做到这一点,但据我所知,动态构建php内容并不是一个好主意,因为它太冒险了。所有示例代码都与.txt文件一起使用,原因很简单。

最简单的技巧包括不会工作,因为我不希望HTML输出结果,而是一个真正的php文件,其中包含file1和file2中的代码。没有变化,只有一个模块接着另一个。

告诉我我很蠢,没关系。 但也许你可以帮我一把。

2 个答案:

答案 0 :(得分:0)

这看起来很难看,但我想你有理由。

如果文件以需要删除的PHP标记开头,我将使用file:

$fileA = file( 'fileA.php' );
unset( $fileA[0] ); # remove opening tag
unset( $fileA[count($fileA) - 1] ); #remove closing tag
$conA = implode( "\n", $fileA );

然后对第二个文件执行相同操作并连接。

否则只需使用file_get_contents和concat运算符(.)。

答案 1 :(得分:0)

正如@Tibor B.所说,如果您需要将文件内容输出为单个可下载的php文件,您可以使用以下内容:

<?php
header('Content-Description: File Transfer');
header('Content-Type: application/x-httpd-php');
header('Content-Disposition: attachment; filename="alltwo.php"');
header('Content-Transfer-Encoding: binary');
readfile("file1.php");
readfile("file2.php");
exit;
?>

如果file1和file2有开/关标签要照顾,就像@Kohjah Breese说的那样,你可以整合他的答案来获得这样的东西:

<?php
header('Content-Description: File Transfer');
header('Content-Type: application/x-httpd-php');
header('Content-Disposition: attachment; filename="somma.php"');
header('Content-Transfer-Encoding: binary');

$fileA = file( 'file1.php' );
unset( $fileA[0] ); # remove opening tag
unset( $fileA[count($fileA) - 1] ); #remove closing tag
$conA = implode( "\n", $fileA );
$fileB = file( 'file2.php' );
unset( $fileB[0] ); # remove opening tag
unset( $fileB[count($fileB) - 1] ); #remove closing tag
$conB = implode( "\n", $fileB );
echo "<?php\n";
echo $conA;
echo $conB;
echo "?>\n";
exit;
?>