Я читаю исходный код веб-сайта интернет-магазина, и на каждой странице продукта мне нужно найти строку JSON, которая показывает SKU продуктов и их количество.Извлечение JSON из HTML с помощью PHP
Вот 2 образца:
'{"sku-SV023435_B_M":7,"sku-SV023435_BL_M":10,"sku-SV023435_PU_M":11}'
Образец выше показывает 3 SKUs.
'{"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.
Количество SKU в строке JSON может варьироваться от одного до бесконечного.
Теперь мне нужно шаблон регулярного выражения, чтобы извлечь эту строку JSON с каждой страницы. В этот момент я могу легко использовать json_encode()
.
Обновление: Здесь я нашел другую проблему, извините, что мой вопрос не был полным, есть еще одна подобная строка json, которая начинается с sku-, Пожалуйста, посмотрите исходный код ниже ссылки, которую вы поймете, единственная разница - это значение, которое является буквенно-цифровым, и для нашего необходимого является числовым. Также обратите внимание, что наша конечная цель - извлечь 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' опечаткой? Количество не в кавычках. – chris85
Я удалил свой ответ, возможно, @ Phil_1984_ поможет вам. Удачи. – chris85