Мне не удалось найти здесь уже отвеченный вопрос, который относится к моей ситуации. Из моего понимания того, что делает этот код, он на самом деле должен работать, но я просто не понимаю, почему это не так.
Я читаю список SKU из текстового файла. Каждый SKU находится на своей линии. Все, что мне нужно сделать, это передать SKU в одиночку моему XML-RPC-запросу и распечатать результаты. Из кода, который я вставил ниже, кажется, что он проходит через SKU, но возвращается только один действительный результат.
Если я пропущу каждый SKU вручную через переменную $ request, я получу действительные результаты. Я тестировал с 5 SKU, но у меня есть 200 на самом деле, поэтому было бы хорошо, если бы я мог заставить это работать. Я даже выложил обучающие видеоролики по Lydia PHP, чтобы понять, не понял ли я что-то, но, похоже, мой код был неправильным.
Я ценю вашу помощь с этим.
<?php
$list = file("skus2.txt");
print_r($list);
foreach ($list as $sku){
$server_url = "http://xxxx.xxx/webservices/index.php";
$request = xmlrpc_encode_request("catalog.findProductImagesBySku", array($sku));
$context = stream_context_create(array(
'http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request)));
$file = file_get_contents($server_url, false, $context);
$response = xmlrpc_decode($file);
print_r ($response);
}
?>
Я пробовал это во всех смыслах. Я занимаюсь этим часами.
Это то, что я получаю взамен. Как вы можете видеть, что он провалился на первых 4, хотя из оператора печати он получает правильный SKU и успешно работает на последнем SKU. Все SKU действительны, потому что я проверял их по одному.
Array
(
[0] => DJ750605
[1] => TO88116
[2] => TO1112516
[3] => TO1112506
[4] => ENAI200006
)
//start of 1st run of foreach loop
DJ750605
Warning: file_get_contents(http://xxx/webservices/index.php) [function.file-get-contents]: failed to open stream: HTTP request failed! ...
//start of 2nd run of foreach loop
TO88116
Warning: file_get_contents(http://xxx/webservices/index.php) [function.file-get-contents]: failed to open stream: HTTP request failed!...
//start of 3rd run of foreach loop
TO1112516
Warning: file_get_contents(http://xxx/webservices/index.php) [function.file-get-contents]: failed to open stream: HTTP request failed!...
//start of 4th run of foreach loop
TO1112506
Warning: file_get_contents(http://xxx/webservices/index.php) [function.file-get-contents]: failed to open stream: HTTP request failed!...
//start of 5th run of foreach loop
ENAI200006Array
(
[0] => Array
(
[sku] => ENAI200006
[large_url] => http://xxxENAI200006.JPG
[medium_url] => http://xxxENAI200006.JPG
[thumb_url] => http://xxxENAI200006.JPG
[url] => http://xxxENAI200006.JPG
)
)
ОБНОВЛЕНИЕ: Рабочий код:)
<code><pre>
<?php
$list = file('skus2.txt', FILE_IGNORE_NEW_LINES);
print_r($list);
foreach ($list as $sku){
$server_url = "http://xxx.com/xxx/webservices/index.php";
$request = xmlrpc_encode_request("catalog.findProductImagesBySku", array($sku));
$context = stream_context_create(array(
'http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request)));
$file = file_get_contents($server_url, false, $context);
$response = xmlrpc_decode($file);
print_r ($response);
}
?>
Еще раз спасибо,
Ура!