【发布时间】:2015-08-22 00:58:08
【问题描述】:
我正在阅读一个在线商店网站的源代码,我需要在每个产品页面上找到一个显示产品 SKU 及其数量的 JSON 字符串。
这里有 2 个示例:
'{"sku-SV023435_B_M":7,"sku-SV023435_BL_M":10,"sku-SV023435_PU_M":11}'
上面的示例显示了 3 个 SKU。
'{"sku-11430_B_S":"20","sku-11430_B_M":"17","sku-11430_B_L":"30","sku-11430_B_XS":"13","sku-11430_BL_S":"7","sku-11430_BL_M":"17","sku-11430_BL_L":"4","sku-11430_BL_XS":"16","sku-11430_O_S":"8","sku-11430_O_M":"6","sku-11430_O_L":"22","sku-11430_O_XS":"20","sku-11430_LBL_S":"27","sku-11430_LBL_M":"25","sku-11430_LBL_L":"22","sku-11430_LBL_XS":"10","sku-11430_Y_S":"24","sku-11430_Y_M":36,"sku-11430_Y_L":"20","sku-11430_Y_XS":"6","sku-11430_RR_S":"4","sku-11430_RR_M":"35","sku-11430_RR_L":"47","sku-11430_RR_XS":"6"}',
上面的示例显示了更多 SKU。
JSON 字符串中的 SKU 数量可以从 1 到无穷大。
现在,我需要一个正则表达式模式来从每个页面中提取这个 JSON 字符串。那时,我可以轻松使用json_encode()。
更新: 在这里我发现了另一个问题,对不起,我的问题不完整,还有另一个类似的以 sku- 开头的 json 字符串,请看下面链接的源代码你会明白,唯一的区别是那个的值是字母数字,我们需要的是数字。另请注意,我们的最终目标是提取 SKU 及其数量,也许您有一个最直接的解决方案。
@chris85
第二次更新:
这是另一个有点离题的奇怪问题。
当我使用下面的代码打开 URL 内容时,源代码中没有 json 字符串!
$html = file_get_contents("http://www.dresslink.com/womens-candy-color-basic-coat-slim-suit-jacket-blazer-p-8131.html");
但是当我用浏览器打开 url 时,json 就在那里!真的很困惑:(
【问题讨论】:
-
sku-11430_Y_M是错字吗?数量不在引号中.. -
我已经删除了我的答案,也许@Phil_1984_ 会帮助你。祝你好运。
标签: php regex json preg-match