我有一个文件index.php
和一个目录app
。每当我从变量访问app
时,我都想加载index.php
目录的内容。
例如:
网址:index.php?url = app / main.php
index.php代码
<?php
require "system/index.php";
$url = $_GET["url"];
load_file($url);
?>
在这里,我希望从main.php
目录加载app
并使用我尚未创建的load_file
函数。主要目的是在运行app/main.php
之前加载一些文件[line:2]。
以下是我实施load_file
功能
<?php
load_file($url) {
require $url;
}
要求实际加载文件中的所有内容并打印出来。这是必需的,也不是某些文件所必需的。每当我需要一些文件时,它的标题就会搞砸了。这意味着,如果网址为index.php?url=app/video.mp4
,则会显示视频的文字/代码,而不是播放视频。 JavaScript和CSS文件也是如此。他们确实加载了代码,但问题是所有文件无论CSS / JavaScript / ZIP / Image / Video都被解释为HTML文档。我想要的只是用各自的标题加载每个文件。
感谢您阅读,如果可以,请尽力帮助。
答案 0 :(得分:0)
有许多方法可以做到这一点。如果你想要单行,你可以尝试readfile():
readfile - 输出文件
描述
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
读取文件并将其写入输出缓冲区。
请确保您不会在脚本中打印任何其他内容。
请注意,您仍然需要发送正确的Content-Type
标头 - 该功能称为header()。
答案 1 :(得分:0)
这不能解决问题而是引入一个新问题
编辑1
mime_content_type()不会为标头返回正确的/或必需的MIME类型。
我找到了解决问题的方法。我必须基本上检测文件的MIME类型并将其作为标头发送。感谢答案和评论。我搜索了谷歌,并且存在一个函数mime_content_type()来识别mime类型。
<?php
function load_file($file){
if(file_exists($file)) {
header("Content-Type:" . mime_content_type($file));
readfile($file); // Refer to http://stackoverflow.com/questions/41444074
}else{
throw new Exception("File you are trying to find does not exist (/anymore).");
}
}