在PHP

时间:2016-11-23 09:57:16

标签: php if-statement include

我有一个运行PHP if语句的网站,根据附加的文件类型显示内容,即Jpg,Txt,MP4。

所以我显示TXT文件的代码是:

if($post_attachment == 'txt'){$display_attachment = "

        <div class=\"sectionDivide\"></div>
        <div class=\"section\">
            <div class=\"articleAttachment\">
                include(\"../a/files/attachments/$post_year/$post_month/$post_id.$post_attachment\");
            </div>
        </div>

    ";}

问题是它没有显示TXT文件的内容,而是在我的网页中显示行include("../a/files/attachments/2016/11/161123095119.txt");

如何让它显示我回显$display_attachment的文本文件的内容?

2 个答案:

答案 0 :(得分:1)

直接(和原始)方式是使用php的字符串连接运算符(.):

$display_attachment = sprintf('
        <div class="sectionDivide"></div>
        <div class="section">
            <div class="articleAttachment">' . 
    include("/some/path/to/file") . '
            </div>
        </div>
');

使用sprintf()

时,有点不那么混乱,但仍然不是真正可读的变体
$display_attachment = sprintf('
        <div class="sectionDivide"></div>
        <div class="section">
            <div class="articleAttachment">
%s
            </div>
        </div>
',
    include("/some/path/to/file")
);

一个干净的解决方案会将包含的结果提取到字符串变量中并使用它。

答案 1 :(得分:-1)

显示文件include()的内容是错误的功能。 include()将加载并执行php代码。

您应该尝试使用fread()来获取TXT文件的内容: http://php.net/manual/en/function.fread.php