如何压缩/简化包含嵌入PHP的JavaScript代码

4

我的jQuery脚本中有一些PHP代码用于初始化变量等。我想使用类似于minify的工具来压缩它并防止他人窥视。但是PHP会导致问题。有人做过类似的事情吗?

下面是一个包含PHP代码的JavaScript示例:

    $('input[name=type]:radio').filter('[value=<?=$type?>]').attr('checked', true);
    $('input[name=cert]:checkbox').filter('[value=<?=$cert?>]').attr('checked', true);
    $('input[name=gauge]:checkbox').filter('[value=<?=$gauge?>]').attr('checked', true);

PHP的短标签真的启用了吗? - Shakti Singh
1
最好的方法是将php和javascript分开,您可以发起一个ajax调用来获取数据的json,然后您可以访问响应并提取它。 - cranberies
PHP代码只在JavaScript字符串中使用还是在其他地方也有用到? - Gumbo
3个回答

2

PHP试图以这种方式完全分离JavaScript。在您的PHP文件中,您可以将值保留如下:

file.php:

<html>
<head>...</head>
<body>
...
<input type="hidden" id ="value_type" value="<?=$type?>" />
<input type="hidden" id ="value_cert" value="<?=$cert?>" />
<input type="hidden" id ="value_gauge" value="<?=$gauge?>" />
...
</body>
</html>

file.js:

$(function() {

  $.data_values = {

     "type": $("#value_type").val(),
     "cert": $("#value_cert").val(),
     "gauge": $("#value_gauge").val()

  };

});

当您需要使用这些值时:

$('input[name=type]:radio').filter('[value="'+$.data_values.type +'"]').attr('checked', true);
$('input[name=cert]:checkbox').filter('[value="'+$.data_values.cert +'"]').attr('checked', true);
$('input[name=gauge]:checkbox').filter('[value="'+$.data_values.gauge +'"]').attr('checked', true);

1

Minify 无法与 PHP 一起使用。如果您必须保留 PHP,而且它不是太多,您可以将其替换为已知标记(例如 'ABCDE'、'12345'),然后进行缩小,最后再将标记替换为 PHP。


1
我也是这么想的。PHP 的内容不多,我会尝试一下。 - etriad

1

如果您的 PHP 代码都在 JavaScript 字符串中,就像您的示例代码一样,那么任何值得使用的压缩工具都应该可以很好地工作。 如果您想使用例如 UglifyJS,则可以在线尝试并查看它是否适用于您的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接