Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: API
Войти
Регистрация
Восстановить пароль
 
Ovi Marketing
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 6
#1

Как выдернуть значения? - PHP

08.03.2018, 16:06. Просмотров 211. Ответов 6
Метки нет (Все метки)

Возвращается посредством API ответ:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "result": { 
    "Ads": [{  /* AdGetItem */
      "Id": (long),
      "CampaignId": (long),
      "AdGroupId": (long),
      "TextAd": {  /* TextAdGet */
        "Title": (string),
        "Title2": (string), /* nillable */ 
        "Text": (string),
        "AdExtensions": [{  /* AdExtensionAdGetItem */
          "AdExtensionId": (long), /* required */
          "Type": ( "CALLOUT" | "UNKNOWN" ) /* required */
        }, ... ],
      },
  }
}}
Нужно выдернуть массив AdExtensions. Но вечно выдает ошибки:
You can not use an object of type stdClass as an array
Или пустое значение.

Не могу вывести, и через циклы пробовал, и преобразовывать в строку, объекты и другие варианты, не выводит. Наверняка делаю что то не так.

Работа со другими значении в строковом формате выводятся без проблем циклом (таким макаром):
PHP
1
2
3
4
5
6
7
foreach ($responseBody->result->Ads as $ads) {
            $title = $ads->TextAd->Title;
            $counthead2 = mb_strlen($ads->TextAd->Title2, 'utf-8');
            $counttext = mb_strlen($ads->TextAd->Text, 'utf-8');
            $countsimvds = mb_strlen($ads->TextAd->DisplayUrlPath, 'utf-8');
            $countsimv = mb_strlen($ads->TextAd->Title, 'utf-8');
         }
а Вот получить значения массива AdExtensions уже не могу, хотя в ответе они есть. Помогите пожалуйста!
http://www.cyberforum.ru/php/thread559237.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2018, 16:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как выдернуть значения? (PHP):

Как выдернуть значения из массива
Есть массив....из столбца С происходит вычет столбца B и результат вносится в...

Как лучше выдернуть значение из строки в котором эти значения делятся (сепаратором ::) или может быть одно
как лучше выдернуть значение из строки в котором эти значения делятся...

Выдернуть из строки 2 значения
Здравствуйте, есть строка: "website-link|http:\\/\\/www.site.ru||timer|05 min"...

Как выдернуть из цикла?
Привет всем ребята мне нужна ваша помощь в такой вещице. У меня есть цикл и...

Как выдернуть порядковый номер?
Не могу сообразить.... Дано a, n. В последовательности из n водимых чисел...

6
Рыжий Лис
Просто Лис
903 / 441 / 317
Регистрация: 17.05.2012
Сообщений: 1,816
Записей в блоге: 7
08.03.2018, 18:03 #2
PHP
1
$AdExtensions = $ads->TextAd->AdExtensions;
0
Ovi Marketing
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 6
08.03.2018, 18:32  [ТС] #3
Спасибо за реакцию, так тоже пробовал:
ErrorException [ Notice ]: Undefined property: stdClass::$AdExtensions

Тут трудность у меня возникла из-за такой структуры: Массив - Объект - Массив, конечный массив нужен, но к нему не удается дойти, в Тех поддержка Яндекса послала в документацию, я ее уже 3 день читаю и как к последнему проникнуть совсем нет информации.
0
Рыжий Лис
Просто Лис
903 / 441 / 317
Регистрация: 17.05.2012
Сообщений: 1,816
Записей в блоге: 7
08.03.2018, 18:58 #4
У меня работает:
PHP
1
2
3
4
$r = json_decode('{"result": {"Ads":[{"Id": 1, "CampaignId": 1, "AdGroupId": 1, "TextAd": { "Title": "1", "Title2": "1","Text": "1", "AdExtensions": [{"AdExtensionId": 1, "Type": "CALLOUT"}]}}]}}');
foreach ($r->result->Ads as $ads){
  var_dump($ads->TextAd->AdExtensions);
}
0
Ovi Marketing
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 6
08.03.2018, 19:16  [ТС] #5
да, ваш работает корректно, видимо что то у меня в коде, или где то перекодировка или еще что то, могу ли я за оплату попросить вас посмотреть код - по предоставленным доступам? практикуется такая возможность тут?
0
Рыжий Лис
Просто Лис
903 / 441 / 317
Регистрация: 17.05.2012
Сообщений: 1,816
Записей в блоге: 7
08.03.2018, 19:34 #6
Помощь на форуме бесплатная, за оплату это вам в раздел фриланса: http://www.cyberforum.ru/freelance/
0
Ovi Marketing
0 / 0 / 0
Регистрация: 20.12.2017
Сообщений: 6
08.03.2018, 19:35  [ТС] #7
Помогла строчка: error_reporting (0);
Не пойму как она влияет на выдачу... Видимо выше в коде перебор ошибок различных, и они конфликт создавали... Спасибо за то что отозвались помочь. По поводу консультаций платных - вопрос открыт, ибо вопросов будет много, если могли бы за оплату помогать, был бы признателен.

Добавлено через 1 минуту
Любая помощь и консультация должна оплачиваться, время любого специалиста стоит денег, благотворительность это хорошо, но оплату за консультации никто не отменял)
0
08.03.2018, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2018, 19:35
Привет! Вот еще темы с решениями:

Как выдернуть ссылки из мемо
В мемо загружен файл примерно такого вида : История игр Улдаоыдвлаыа......

Как выдернуть цифру из адресной строки?
Как скопировать в vol.txt, цифру из названия последней папки которая находится...

Как выдернуть фотографию с защищённого сайта?
если принтскрином сохранять то фотографии маленького размера,качество плохое)в...

Как выдернуть Html код в PHP
Есть сайт статистики игровых серверов так вот я там разместил мой сервер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru