假设我们有以下来自两个文件的javascript片段:如何用PHP构建all.js ?
a.js
var a = 20;
function foo() {
console.warn('bar');
}
foo();
$(document).ready(function() {
$(".someid").on("click", ".class", function() {
do_stuff();
});
});
研究
var x = ['room', 'admin', 2];
$(document).ready(function() {
$.post("url/", { n: 80}, function(j) {
console.log(j);
}, "json");
});
all.js
var a = 20;
function foo() {
console.warn('bar');
}
foo();
var x = ['room', 'admin', 2];
$(document).ready(function() {
$(".someid").on("click", ".class", function() {
do_stuff();
});
$.post("url/", { n: 80}, function(j) {
console.log(j);
}, "json");
});
这是我最后做的。它假定遵循了一些约定,否则就会被打破。但对我目前的需要来说已经足够了。
$js_sources = array('
var a = 20;
function foo() {
console.warn("bar");
}
foo();
$(document).ready(function() {
$(".someid").on("click", ".class", function() {
do_stuff();
});
});','
var x = ["room", "admin", 2];
$(document).ready(function() {
$.post("url/", { n: 80}, function(j) {
console.log(j);
}, "json");
});
');
$outjs = array();
$outready = array();
foreach($js_sources as $js) {
$js = explode('$(document).ready(function() {', $js);
$outjs[] = $js[0];
$js = $js[1];
$mark = strrpos($js , '});');
$outjs[] = substr($js, $mark + 3);
$outready[] = substr($js, 0, $mark);
}
$out = implode(PHP_EOL, $outjs) .
'$(document).ready(function() {' . implode(PHP_EOL, $outready) . '});';