Включение PHP-файла в PHP

У меня есть веб-сайт, на котором работает оператор 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 ?

Непосредственный (и грубый) способ заключается в использовании оператора конкатенации строки 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") ); в $display_attachment = sprintf(' <div class="sectionDivide"></div> <div class="section"> <div class="articleAttachment"> %s </div> </div> ', include("/some/path/to/file") ); 

Чистое решение получило бы результат включения в строковую переменную и использовало бы это.

Отображение содержимого файла include() является неправильной функцией. include() будет загружать и выполнять php-код.

Вы должны попытаться использовать fread() вместо этого, чтобы получить содержимое TXT-файла: http://php.net/manual/en/function.fread.php