遍历 PHP file_get_contents 并执行放置请求
Loop through PHP file_get_contents and do a put request
我正在尝试循环遍历 json,我使用 file_get_contents("someurl")
从 url 中得到它。
我还向 url 传递了一个 ID,这是我从解析的 webhook 中获得的。
问题来自 for/foreach,当它有多个 'producto'
时,我似乎无法遍历 $data
在循环继续之前,我必须将从 $stock
和 $precio
到 $stock_quantity
和 $price
的数据发送到由 url 定义的产品$sku
摘自 $codigo_var
的 json
关于如何发送这些变量的任何想法,无论我只得到一个 'producto'
还是多个 'producto'
?
$data = file_get_contents('php://input');
$products = json_decode($data, true);
$id = ($products['recurso_id']);
$dato = file_get_contents("www.something.com/$id");
$decodata = json_decode($dato, true);
foreach($decodata as $data){
$sku = $data['producto']['codigo_var'];
$stock_quantity= $data['producto']['stock'];
$price = $data['producto']['precios'][0]['precio'];
print_r($woocommerce->put('products/$sku', $stock_quantity));
print_r($woocommerce->put('products/$sku', $price));
}
JSON 示例:
{"total":"3","offset":0,"limit":100,"repos":"https:\/\/www.apliton.com\/repos\/hogarytecno","productos":[{"id":"2438","estado":"1","fecha_alta":"2021-02-04 14:10:09","fecha_modif":"2021-04-19 10:42:58","codigo":"PE-BM110","codigo_var":"PE-BM110RS","nombre":"BATIDORA PEABODY DE MESA PE-BM110RS 1000 WATTS ROSA","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"23.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null},{"id":"2378","estado":"1","fecha_alta":"2021-01-09 09:30:40","fecha_modif":"2021-04-19 10:40:54","codigo":"PE-BM110","codigo_var":"PE-BM110L","nombre":"BATIDORA PEABODY DE MESA PE-BM110L 1000 WATTS MARFIL","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"333.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null},{"id":"2377","estado":"1","fecha_alta":"2021-01-07 08:51:21","fecha_modif":"2021-04-19 10:40:56","codigo":"PE-BM110","codigo_var":"PE-BM110R","nombre":"BATIDORA PEABODY DE MESA PE-BM110 1000W ROJA","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"68.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null}]}
您可以使用:
<?php
$arr = json_decode($json, true); // turn json into an associative array
foreach($arr['productos'] as $producto) {
$sku = $producto['codigo_var'];
$stock_quantity= $producto['stock'];
$price = $producto['precios'][0]['precio'];
// ... etc.
}
您可以使用print_r($arr)
或var_dump($arr)
来帮助您可视化数组结构,并引用您需要的数据项。
我正在尝试循环遍历 json,我使用 file_get_contents("someurl")
从 url 中得到它。
我还向 url 传递了一个 ID,这是我从解析的 webhook 中获得的。
问题来自 for/foreach,当它有多个 'producto'
$data
在循环继续之前,我必须将从 $stock
和 $precio
到 $stock_quantity
和 $price
的数据发送到由 url 定义的产品$sku
摘自 $codigo_var
关于如何发送这些变量的任何想法,无论我只得到一个 'producto'
还是多个 'producto'
?
$data = file_get_contents('php://input');
$products = json_decode($data, true);
$id = ($products['recurso_id']);
$dato = file_get_contents("www.something.com/$id");
$decodata = json_decode($dato, true);
foreach($decodata as $data){
$sku = $data['producto']['codigo_var'];
$stock_quantity= $data['producto']['stock'];
$price = $data['producto']['precios'][0]['precio'];
print_r($woocommerce->put('products/$sku', $stock_quantity));
print_r($woocommerce->put('products/$sku', $price));
}
JSON 示例:
{"total":"3","offset":0,"limit":100,"repos":"https:\/\/www.apliton.com\/repos\/hogarytecno","productos":[{"id":"2438","estado":"1","fecha_alta":"2021-02-04 14:10:09","fecha_modif":"2021-04-19 10:42:58","codigo":"PE-BM110","codigo_var":"PE-BM110RS","nombre":"BATIDORA PEABODY DE MESA PE-BM110RS 1000 WATTS ROSA","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"23.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null},{"id":"2378","estado":"1","fecha_alta":"2021-01-09 09:30:40","fecha_modif":"2021-04-19 10:40:54","codigo":"PE-BM110","codigo_var":"PE-BM110L","nombre":"BATIDORA PEABODY DE MESA PE-BM110L 1000 WATTS MARFIL","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"333.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null},{"id":"2377","estado":"1","fecha_alta":"2021-01-07 08:51:21","fecha_modif":"2021-04-19 10:40:56","codigo":"PE-BM110","codigo_var":"PE-BM110R","nombre":"BATIDORA PEABODY DE MESA PE-BM110 1000W ROJA","tipo_id":"1","novedad":"0","detacado_pzdo_id":"0","web_mdp_destac":"1","web_mdp_bonif":"1","med_ancho":"41.00","med_alto":"30.50","med_largo":"37.50","peso_kg":"6.27","rubro_id":null,"rubro_nombre":"","rubro_subid":null,"marca_id":"7","marca_nombre":"PEABODY","iva_ptaje":"21.00","imp_int_ptaje":null,"club":"0","club_puntos_canje":"0","club_puntos_cred":"0","web_club_publica_canje":"0","stock":"68.00","envio_me":"1","envio_me_gratis":false,"envio_me_gratis_valor":"0","ml_link":"","colores":[],"tipo_medidas":{"id":null,"nombre":""},"medidas":{"id":null,"nombre":""},"precios":[{"id":"3","nombre":"E-COMMERCE","tipo_moneda_id":"1","precio":"14859.5042","bonif":"0.00","precio_venc":"0.0000"}],"fotos":null}]}
您可以使用:
<?php
$arr = json_decode($json, true); // turn json into an associative array
foreach($arr['productos'] as $producto) {
$sku = $producto['codigo_var'];
$stock_quantity= $producto['stock'];
$price = $producto['precios'][0]['precio'];
// ... etc.
}
您可以使用print_r($arr)
或var_dump($arr)
来帮助您可视化数组结构,并引用您需要的数据项。