【问题标题】:request and read any file type with php使用 php 请求和读取任何文件类型
【发布时间】:2017-05-03 19:40:11
【问题描述】:

所以这就是我想要做的: 我试图能够从我想在 php 文件中回显它们的 php 文件中获取 CSS、JS 和 HTML 文件,并将文件中的类型设置为所需的类型 ex: if it is a js file set类型为text/javascript 如果它是css 将类型设置为text/css 我说doc type btw 页面类型,标题类型。我不知道它叫什么,但我希望浏览器将它解释为文件类型,即使它在技术上是 html。
我输入了一些代码..

<?php
if (isset($_GET['name'])) {
    if (isset($_GET['type'])) {
        if ($_GET['type'] === 'javascript') {
            header('Content-type: text/javascript; charset: UTF-8');
            $file = $_GET['name'].'.js';
            $execjs = file_get_contents($file);
        }
    } elseif ($_GET['type'] === 'css') {
        header('Content-type: text/css; charset: UTF-8');
        $file = $_GET['name'].'.css';
        $execcss = file_get_contents($file);
    }
} if ($execjs === 'false') {
    echo 'js 404';
} elseif ($execcss === 'false') {
    echo 'css404';
}
?>

但这不适用于我选择的两种文件类型,它使用$_GET['name'] (Name in the query string)$_GET['type'] (type in the query string) 来获取文件名和文件类型,我还想让它通用,这样它几乎可以读取任何文件类型, 前任 js, css, php, html, xml, png, ico, jpg
我知道这可能很难做到,我只需要一些启动代码来让我继续构建文件

【问题讨论】:

  • 您应该按照here 的描述使用 finfo_file。

标签: javascript php html css get


【解决方案1】:

类似的东西呢:

<?php

$name = $_GET['name'];
$type = $_GET['type'];
if (!isset($name)) {
    die();
}
if (!isset($type)) {
    die();
}
switch ($type) {
    case "javascript":
    $header = 'Content-type: text/javascript; charset: UTF-8';
    $file = $name.'.js';
    break;
    case "css":
    $header = 'Content-type: text/css; charset: UTF-8';
    $file = $name.'.css';
    break;
    case "php":
    $header = 'Content-type: text/html; charset: UTF-8';
    $file = $name.'.html';
    break;
}
$execfile = file_get_contents($file);
if ($execfile === false) {
    header('Content-type: text/html; charset: UTF-8');
    echo $type.' 404';
} else {
    header($header);
    echo $execfile;
}
?>

【讨论】:

  • 这在大多数情况下都有效,在声明变量后会出现一些语法错误
    $name = $_GET['name']
    这个字符串的末尾必须有一个分号 (;) 否则它将触发错误。
    并且,使用if (!isset($name) {,您必须关闭与打开一样多的括号..if (!isset($name**)**) {
    我还假设服务器会找到该文件,否则它会返回指定的 404,但它不会列出文件的内容,我想知道当有404时,标题类型可以设置回text/html吗?
  • 在经过一些调整后,大部分时间都可以正常工作。在header('Content-type: text/html; charset: UTF-8') 之后的if ($execfile === false) { 后面需要有一个分号,并且在css 标题中它说text/javascript 这需要text/css(抱歉只是建议修复以使其工作)它现在会将所有代码读取到文件中。
  • 这 100% 有效!我只是想知道是否有办法在有 &dir= 的地方制作它,这样我就可以在不同的目录中获取文件,而不会在名称中随意使用,如果你这样做,请编辑 this这是我自己对主代码的编辑,使它实际上回显了 html 括号并添加了 htm 和 html
猜你喜欢
  • 2017-10-02
  • 2011-05-08
  • 2010-10-07
  • 2019-04-06
  • 2023-04-01
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
  • 2019-10-21
相关资源
最近更新 更多