我正在编写一个脚本,该脚本将遍历我所有的.js文件,并将它们缩小为一个要包含在站点中的.php文件。在编辑了一些js并将其上传到实时站点后,我才运行此脚本。
问题:我无法使用file_get_contents加载jquery-2.1.4.min.js的内容。我试图将文件名更改为jquery.js,但这没有帮助。我在其他文件中没有任何复杂的javascript(只是随机字符串),但它们可以正常打开。
带有代码:
if (!file_get_contents($filename)) {
die ("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,它们似乎都失败了。
好的,找到解决方案。这与jquery创建的实际文件有关。
我解决该问题的方法是:-转到查询站点,而不是下载所需文件,而是在新的标签/窗口中打开它-复制此窗口中的所有内容-在需要的地方创建一个新文件,并根据需要命名-将内容粘贴到此文件中并保存
现在可以通过file_get_contents读取此新文件。我想如果您尝试以任何方式使用php中的jquery(和其他)文件并遇到问题,此解决方案将有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句