PHP file_get_contents获取jquery min代码

时间:2015-08-02 01:30:06

标签: php jquery file-get-contents

我正在编写一个脚本,它将遍历我的所有.js文件,并将它们缩小为一个.php文件,以包含在网站上。我在编辑了一些js之后运行这个脚本,并希望将其上传到实时站点。

问题:我无法使用file_get_contents加载jquery-2.1.4.min.js的内容。我已经尝试将文件名更改为jquery.js,但没有帮助。我在其他文件中没有任何复杂的javascript(只是随机字符串),但它们打开正常。

使用代码:

if (!file_get_contents($filename)) {
    die ("dammit");
}

我得到了#dam; dammit"的回应。所有其他文件都很好,所以我知道文件名和路径是正确的。其中一个奇怪的事情是没有错误出现(我使用了error_reporting(-1);以确保它们会出现。)

是否有其他人能够获取jquery的文件内容?什么会导致这个问题以及它是否会成为其他javascript或css的问题?

根据要求,这是完整的代码:

$buffer = $jsStartBuffer;
//get a list of files in the folder (only .js files)
$fileArray = array();
if (is_dir($jsMakeFile["SourcePath"])){
    if ($dh = opendir($jsMakeFile["SourcePath"])){
        while (($file = readdir($dh)) !== false){
            $file_parts = pathinfo($jsMakeFile["SourcePath"].$file);
            if ($file_parts['extension'] == "js") {
                $fileArray[] = $file;
            }
        }
    }
}
print_r($fileArray);
foreach ($fileArray as $nextRawFile) {
    $buffer .= file_get_contents($jsMakeFile["SourcePath"].$nextRawFile);
    if (!file_get_contents($jsMakeFile["SourcePath"].$nextRawFile)) {
        die ("dammit");
    }
    echo $jsMakeFile["SourcePath"].$nextRawFile;
}
$buffer .= $jsEndBuffer;
echo $buffer;
$buffer = \JShrink\Minifier::minify($buffer);
file_put_contents($jsMakeFile["finalFile"]["path"].$jsMakeFile["finalFile"]["name"], $buffer);

当我把其他.js文件放在那里时它很好(我甚至尝试过lightbox.min.js它工作正常!)我尝试了几个不同版本的jquery.min,它们似乎都失败了。

1 个答案:

答案 0 :(得分:0)

好的,找到了解决方案。它与jquery创建的实际文件有关。

我解决它的方式是: - 转到查询站点,而不是下载所需的文件,在新的选项卡/窗口中打开它 - 复制此窗口中的所有内容 - 根据需要创建新文件,并根据需要进行名称 - 将内容粘贴到此文件中并保存

现在,file_get_contents可以读取这个新文件。我想如果你试图以任何方式处理php中的jquery(和其他)文件并遇到问题,这个解决方案会有所帮助。