如何从PHP对象输出单行JavaScript

How can I output a single-line JavaScript from a PHP object?

本文关键字:输出 单行 JavaScript 对象 PHP      更新时间:2023-09-26

我的PHP代码:

include "something.php"
$mysite = writeContent();
//footer.php
ob_start();
echo "<script...all my javascript here...</script>";
$object = ob_get_contents();
ob_end_clean();
$search = array("'n","'r");
$replace = array("","");
$object = str_replace($search, $replace, $object);
echo $object;

那么我的JavaScript格式不正确,无法工作。

我知道我可以使用gzip来提高速度(这不是我的要求),但我真正想要的是从代码中删除额外的空间。

您是否有可能遇到分号问题?您可能想先验证您的JavaScript,看看哪里出了问题,但这里有许多可能性之一:

var foo = 0 // This works fine
var bar = 1
// #=>
var foo = 0var bar = 1 // This doesn't
// And FWIW, this is what you want:
var foo = 0;
var bar = 1;

理想情况下,您应该LINT您的JS,然后通过经过适当测试的迷你程序运行它。对于PHP,我已经成功地使用了jsminphp。

既然Josh没有回答他的评论,我会的。

当替换换行符并且JavaScript缺少分号时,解释器无法检测语句的末尾。因此,只需确保脚本中的每一行都有一个";"。或者,您可以用分号替换所有新行,一行中有两个分号不是语法错误。不理想,但会成功的。

JAAulde的建议是,通过最小化程序运行它是最好的方法。这里有一个phphttps://github.com/rgrove/jsmin-php/

请参阅php 中的组合和压缩多个JavaScript文件