Форум программистов, компьютерный форум, киберфорум
PHP: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40

Curl возвращает результат в виде массива символов а не данных

09.08.2016, 14:03. Показов 3274. Ответов 6
Метки curl, php (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый вечер пишу api к шлюзу Dinstar. Sms и Ussd отправляет отлично, теперь стал вопрос с получением смс на страничку.
PHP
1
2
3
4
5
6
7
8
9
10
11
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "{$url}?flag=all");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    curl_setopt($ch, CURLOPT_USERPWD,"$login:$password");
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close ($ch);
    return $result;
В $result возвращается следующее
{"error_code":200,"sms":[{"incoming_sms_id":1,"port":0,"number":" lifecell","smsc":"+380630000007","timest amp":"2016-08-06 11:09:57","text":"Hа Вашем счете меньше1 грн. Пополняйте счет заранее и оставайтесь на связи. Вы можете пополнять счет банковской картой на oplata.lifecell.com.ua"}

curl_getinfo возвращает просто Array

Вопрос как из этих данных извлечть номер телефона, порт и текст сообщения не юзая регулярку?

Добавлено через 19 минут
Точнее возвращает массив из 1го елемента в котором записаны все сообщения в виде указаном в сообщении выше

Добавлено через 6 минут
Цитата Сообщение от pai Посмотреть сообщение
curl_getinfo возвращает просто Array
curl_getinfo возвращает Array ( [0] => Array ( [url] => http://192.168.2.170/api/query_incoming_sms?flag=all [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => 0 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [primary_port] => 0 [local_ip] => [local_port] => 0 ) )
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2016, 14:03
Ответы с готовыми решениями:

Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из символов: <,> или =
Написати функцію, яка порівнює цілих числа і повертає результат порівняння в вигляді одного з знаків: &lt;, &gt; або =. Написать...

Curl, не возвращает результат с zara.com
Не могу спарсить сайт, пишет Not Found The requested URL ... $url =...

При смещении символов в строке выдается результат в виде кривых символов
У меня такая проблема: дело в том что я циклом смещаю символы в строке вот таким образом, n=strlen(str); for(n;j&lt;n;n--) str=str; и...

6
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.08.2016, 14:06
pai, json_decode wikipedia:JSON
1
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
09.08.2016, 14:37  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
json_decode wikipedia:JSON
Теперь вернуло, так но теперь я так понимаю в масиве еще вложенные массивы, есть ли хороший мануал по вложенным массивам?

array(1) { [0]=> object(stdClass)#1 (4) { ["error_code"]=> int(200) ["sms"]=> array(7) { [0]=> object(stdClass)#2 (6) { ["incoming_sms_id"]=> int(1) ["port"]=> int(0) ["number"]=> string(8) "lifecell" ["smsc"]=> string(13) "+380630000007" ["timestamp"]=> string(19) "2016-08-06 11:09:57" ["text"]=> string(243) "Hа Вашем счете меньше1 грн. Пополняйте счет заранее и оставайтесь на связи. Вы можете пополнять счет банковской картой на oplata.lifecell.com.ua" } [1]=> object(stdClass)#3 (6) { ["incoming_sms_id"]=> int(2) ["port"]=> int(1) ["number"]=> string(8) "KYIVSTAR" ["smsc"]=> string(13) "+380672020000" ["timestamp"]=> string(19) "2016-08-07 12:07:23" ["text"]=> string(283) "Напоминаем, что этой ночью будет снята абонплата 20грн по условиям Вашего тарифа. Пожалуйста, убедитесь, что на счете достаточно средств. Остаток счета: *111# " }

Добавлено через 14 минут
Цитата Сообщение от pai Посмотреть сообщение
есть ли хороший мануал по вложенным массивам?
Я так понимаю должно быть что то на подобие этого только необходимо опуститься еще на уровень ниже, как это сделать?
print_r($result[0]->text);
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.08.2016, 14:44
PHP
1
2
3
4
5
<?php
$sms_list = $result[0]->sms;
foreach($sms_list as $sms) {
    echo $sms->text, PHP_EOL;
}
1
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
09.08.2016, 14:56  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
<?php $sms_list = $result[0]->sms; foreach($sms_list as $sms) { echo $sms->text, PHP_EOL; }
$sms_list = $result[0]->sms; возвращает NULL, а вся конструкция Warning: Invalid argument supplied for foreach() in C:\OpenServer\domains\ranecsms\incoming_ sms.php on line 22
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
09.08.2016, 15:09
Лучший ответ Сообщение было отмечено pai как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$json = <<<JSON
{
    "error_code":200,
    "sms":[
        {
            "incoming_sms_id":1,
            "port":0,
            "number":"lifecell",
            "smsc":"+380630000007",
            "timestamp":"2016-08-06 11:09:57",
            "text":"Hа Вашем счете меньше1 грн. Пополняйте счет заранее и оставайтесь на связи. Вы можете пополнять счет банковской картой на oplata.lifecell.com.ua"
        }
    ]
}
JSON;
 
$result=json_decode($json);
 
$sms_list = $result->sms;
foreach($sms_list as $sms) {
    echo $sms->text, PHP_EOL;
}
http://ideone.com/iORuIe
1
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
09.08.2016, 15:17  [ТС]
Все разобрался простите мою невнимательность до этого просто писал
PHP
1
$res=array(recive_sms($url,$login,$password));
и изза этого array не работало.
Огромнейшее Вам спасибо.

Добавлено через 2 минуты
Тему можно закрывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2016, 15:17
Помогаю со студенческими работами здесь

Исходное число задать в виде строки символов в коде ASCII, результат сформировать в виде двоичного кода в формате слова
Исходное число задать в виде строки символов в коде ASCII, результат сформировать в виде двоичного кода в формате слова. Число в ASCI...

Напишите функцию, которая сравнивает 2 числа и возвращает результат в виде одного из знаков: >,<,=
Напишите функцию, которая сравнивает 2 числа и возвращает результат в виде одного из знаков: &gt;,&lt;,= (без POW)

Функция которая сравнивает два целых числа и возвращает результат сравнения в виде знака: >, < или =
Используя функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде знака: &gt;, &lt; или =, вычислить количество...

Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков
4. Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: &gt;, &lt; или =. ...

Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из знаков: <, > или =.
Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из знаков: &lt;, &gt; или =. Написати...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru