Есть код:
for ($i=0;$i<2;$i++){ // основной цикл
for($z=0;$z<10;$z++) { //вложенный цикл
if($z==0) { $zapros.=' return {'; }
$zapros .=' "rst'.$z.'":API.photos.getAll({
"owner_id":"'.$friendsik->response->items[$k].'",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"})';
if($z!=9) { $zapros .=','; }
else { $zapros.='};'; $ho=1; }
$k=$k+1;
}
$f = fopen("bot.txt", "a+");
fwrite($f,$zapros. " " );
fclose($f);
}
return 0; // Пофиг что выводить
}
В данном фрагменте кода я создаю execute запрос к серверу вк. Дело в том что вложенный цикл должен создавать тело execute запроса а именно переменную code (для тех кто шарит в vk api). Собственно проблема в том что при первой итерации основного цикла, вложенный цикл создаёт переменную zapros как надо, а именно в текстовый документ записываветься вот это:
return { "rst0":API.photos.getAll({
"owner_id":"232472393",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst1":API.photos.getAll({
"owner_id":"335121474",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst2":API.photos.getAll({
"owner_id":"149082318",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst3":API.photos.getAll({
"owner_id":"137529581",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst4":API.photos.getAll({
"owner_id":"139572580",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst5":API.photos.getAll({
"owner_id":"223138809",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst6":API.photos.getAll({
"owner_id":"273106404",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst7":API.photos.getAll({
"owner_id":"211408588",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst8":API.photos.getAll({
"owner_id":"599894772",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst9":API.photos.getAll({
"owner_id":"370411016",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"})};
НО, при второй итерации основного цикла вложенный цикл выполняеться 2 раза, тоесть переменная zapros становиться равной:
return { "rst0":API.photos.getAll({
"owner_id":"232472393",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst1":API.photos.getAll({
"owner_id":"335121474",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst2":API.photos.getAll({
"owner_id":"149082318",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst3":API.photos.getAll({
"owner_id":"137529581",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst4":API.photos.getAll({
"owner_id":"139572580",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst5":API.photos.getAll({
"owner_id":"223138809",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst6":API.photos.getAll({
"owner_id":"273106404",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst7":API.photos.getAll({
"owner_id":"211408588",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst8":API.photos.getAll({
"owner_id":"599894772",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst9":API.photos.getAll({
"owner_id":"370411016",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"})}; return { "rst0":API.photos.getAll({
"owner_id":"570372147",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst1":API.photos.getAll({
"owner_id":"232985818",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst2":API.photos.getAll({
"owner_id":"439280822",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst3":API.photos.getAll({
"owner_id":"324641024",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst4":API.photos.getAll({
"owner_id":"375950180",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst5":API.photos.getAll({
"owner_id":"313848521",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst6":API.photos.getAll({
"owner_id":"307850071",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst7":API.photos.getAll({
"owner_id":"156115157",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst8":API.photos.getAll({
"owner_id":"146257695",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"}), "rst9":API.photos.getAll({
"owner_id":"201226959",
"extended":"1",
"no_service_albums":"0",
"count":"30",
"photo_sizes":"1",
"skip_hidden":"0",
"v":"5.50"})};
ПРИ третей итерации цикла вложенный цикл повторяется три раза, и я не могу понять почему это просходит и как это исправить, если по идеи внутренний цикл должен повторяться всего один раз. Помогите!!!!!!!
Во первых, вы сами добавляете в переменную $zapros
новое содержимое, т.к. используете конкатенацию: $zapros.=' return {';
вместо $zapros=' return {';
Во вторых, вы пишете в файл в режиме a+, т.е. дозаписываете в файл новое содержимое переменной $zapros
.
Решайте сами, что из этого лишнее.
Также, никто так не формирует json, это попросту неудобно.
Собирайте данные в массив, а потом вызывайте json_encode
.
Опредённые сложности создаёт вызов js функции, но тем не менее.
Например, так:
$queries = [];
foreach ($rows as $key => $row) {
$json = json_encode($row);
$queries[] = "\"{$key}\": API.photos.getAll({$json})";
}
$json_entries = implode(",\n\t", $queries);
$zapros = "return {\n\t{$json_entries}\n};\n";
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Собственно следующая проблема, надо расширить модуль отзывов (которые о сайте в целом, не отзывы о товарах), добавить пару полей и возможность...
пытаюсь получить токен для api digiseller https://mydigiseller
Всех приветствую, при открытии сайта появляется белый экран и ошибка HTTP ERROR 500При этом админ панель открывается нормально