如何编写 Shopify 脚本文件 currencies.js 以安全处理货币汇率?
- 内容介绍
- 相关推荐
本文共计1056个文字,预计阅读时间需要5分钟。
为了在PHP后端正确提取Shopify CDN上的currencies.js中的汇率数据(如`rates`对象),你需要处理几个关键点,包括JavaScript变量的声明、JSON解析以及字符串预处理。以下是一个简化的步骤和示例代码:
Shopify 的 https://cdn.shopify.com/s/javascripts/currencies.js 并非标准 JSON 接口,而是一个导出 JavaScript 对象的脚本文件,其内容形如:
var Currency = { "rates": { "USD": 1, "EUR": 0.9245, "GBP": 0.7891, "JPY": 151.23, // ... 其他货币 }, convert: function(D,R,S){ return D * this.rates[R] / this.rates[S]; } };//# sourceMappingURL=/s/javascripts/currencies.js.map
直接对原始响应体调用 json_decode() 必然失败——因为开头是 var Currency = {,结尾含函数定义和注释,完全不符合 JSON 语法规范。
✅ 正确解析思路:清洗 + 标准化 + 解码
需通过字符串操作剥离 JS 声明、移除函数体、清理注释与换行,并将对象字面量转换为合法 JSON 字符串。
本文共计1056个文字,预计阅读时间需要5分钟。
为了在PHP后端正确提取Shopify CDN上的currencies.js中的汇率数据(如`rates`对象),你需要处理几个关键点,包括JavaScript变量的声明、JSON解析以及字符串预处理。以下是一个简化的步骤和示例代码:
Shopify 的 https://cdn.shopify.com/s/javascripts/currencies.js 并非标准 JSON 接口,而是一个导出 JavaScript 对象的脚本文件,其内容形如:
var Currency = { "rates": { "USD": 1, "EUR": 0.9245, "GBP": 0.7891, "JPY": 151.23, // ... 其他货币 }, convert: function(D,R,S){ return D * this.rates[R] / this.rates[S]; } };//# sourceMappingURL=/s/javascripts/currencies.js.map
直接对原始响应体调用 json_decode() 必然失败——因为开头是 var Currency = {,结尾含函数定义和注释,完全不符合 JSON 语法规范。
✅ 正确解析思路:清洗 + 标准化 + 解码
需通过字符串操作剥离 JS 声明、移除函数体、清理注释与换行,并将对象字面量转换为合法 JSON 字符串。

