如何以编程方式编辑 'script' 元素中的 JSON-LD?
How to programmatically edit JSON-LD in 'script' elements?
我的服务器上有几个 HTML 文件,其中包含 JSON-LD script
元素。我正在寻找一种简单的方法来更新特定元素,而无需实际进入每个文件、更改代码并重新保存它。
具体来说,我想以编程方式遍历每个文件,找到 datePosted
属性 并将其值更新为当前日期,然后将文件保存在我的服务器上。
我最习惯使用 PHP 并且我对 HTML 文件做过类似的事情,但之前从未尝试过更新 JSON-LD。
想知道是否有人知道如何使用 JavaScript 或 PHP 执行此操作。如果不能,有人能给我指出与 JSON-LD 一起使用的良好解析器的正确方向吗?
样本JSON-LD:
{
"@context": "http://schema.org",
"@type": "JobPosting",
"datePosted": "2018-01-23"
}
这很简单,只需要使用 json_decode 和 json_encode 即可:
$file = "file-path-to-json-ld";
$string = file_get_contents($file); // pulls the file
$json = json_decode($string, true); //creates a searchable array
var_dump($json); // just to see what elements and values are in the decoded array
$json['element-name-in-json-ld'] = "new-value-for-element"; //change any value you like
$updatedString = json_encode($json, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); //re-encode backing into json
file_put_contents($file, $updatedString); // put file back
我的服务器上有几个 HTML 文件,其中包含 JSON-LD script
元素。我正在寻找一种简单的方法来更新特定元素,而无需实际进入每个文件、更改代码并重新保存它。
具体来说,我想以编程方式遍历每个文件,找到 datePosted
属性 并将其值更新为当前日期,然后将文件保存在我的服务器上。
我最习惯使用 PHP 并且我对 HTML 文件做过类似的事情,但之前从未尝试过更新 JSON-LD。
想知道是否有人知道如何使用 JavaScript 或 PHP 执行此操作。如果不能,有人能给我指出与 JSON-LD 一起使用的良好解析器的正确方向吗?
样本JSON-LD:
{
"@context": "http://schema.org",
"@type": "JobPosting",
"datePosted": "2018-01-23"
}
这很简单,只需要使用 json_decode 和 json_encode 即可:
$file = "file-path-to-json-ld";
$string = file_get_contents($file); // pulls the file
$json = json_decode($string, true); //creates a searchable array
var_dump($json); // just to see what elements and values are in the decoded array
$json['element-name-in-json-ld'] = "new-value-for-element"; //change any value you like
$updatedString = json_encode($json, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); //re-encode backing into json
file_put_contents($file, $updatedString); // put file back