如何从PHP对象输出单行JavaScript?

时间:2011-06-15 19:20:15

标签: php javascript object

我的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来提高速度(这不是我要求的)但我真正想要的是从代码中删除多余的空间。

3 个答案:

答案 0 :(得分:2)

理想情况下,你需要LINT你的JS,然后通过经过适当测试的minifier运行它。对于PHP,我使用了jsmin-php非常成功。

答案 1 :(得分:2)

你有分歧的问题吗?您可能希望validate your JavaScript first看到错误,但这里有许多可能性之一:

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;

答案 2 :(得分:2)

由于乔希没有回答他的评论,我会的。

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

JAAulde的建议,通过最小化器运行它是最好的方法。这是php https://github.com/rgrove/jsmin-php/

的一个

请参阅Combining and Compressing multiple JavaScript files in php