我有script.js文件。它有以下数组
'COntent': function() {
var contentFacts = {
blocks: {
'block1': {
name: 'yleow',
title: 'H2',
type: 'content'
}
}
};
}
},
我在我的php中尝试了这样,但它不起作用:(
$lines = file($path.'/script.js');
$lines[64] = "'block2': {name: 'yleow',title: 'H2',type: 'content'}"
file_put_contents($path.'/script.js', implode($lines));
我想为这个数组添加另一个元素调用block2。如何使用PHP更新我的script.js文件功能? 是否可以使用file_put_contents?请建议
答案 0 :(得分:1)
JavaScript是数据库或任何其他结构化数据格式的非常的替代品。在这种情况下甚至更多,因为您正在尝试将内容注入源代码。
您可能需要的是代码之外的某种形式的结构化数据,例如JSON文件或SQLite数据库。
PHP支持从JSON解析和序列化:
将contentFacts
放入单独的JSON文件
{
"blocks": {
"block1": {
name: 'yleow',
title: 'H2',
type: 'content'
}
}
}
使用PHP操作JSON
$json = file($path.'/blocks.json');
$blocks = json_decode($json, true);
$blocks['block2'] = array(
'name' => 'blue',
'title' => 'h3',
'type' => 'content'
);
回写JSON文件
$adapted_json = json_encode($blocks);
file_put_contents($path.'/blocks.json');
现在你需要把它放到你的JavaScript部分,我假设在客户端上。您可以通过从服务器请求它来执行此操作:
const contentPromise = fetch('/path/to/blocks.json');
contentPromise.then((blocks) => {
// Do something with those blocks. (render them to the page?)
});