Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Условия для текста в переменой / 6 сообщений из 6, страница 1 из 1
05.07.2013, 22:20
    #38322497
Алексей234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
Есть переменая xml:
$xml=”<response>
<version>1.2</version>
<merchant_id></merchant_id>
<order_id> ORDER_123456</order_id>
<amount>1.01</amount>
<currency>UAH</currency>
<description>Comment</description>
<status>success</status>
</response>";

Статус бывает разный:
status="success" - покупка совершена
status="failure" - покупка отклонена
status="wait_secure" - платеж находится на проверке
Если статус равен success тогда мы делаем одно действие если другой тогда мы делаем другое действие, как это сделать? Как поставить условие лишь для поля status?
...
Рейтинг: 0 / 0
05.07.2013, 23:04
    #38322527
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
Алексей234,

php? может preg_match? Обычно его в таких целях пользую (если не надо конечно весь xml распарсить и достать оттуда десяток значений)
...
Рейтинг: 0 / 0
06.07.2013, 00:17
    #38322568
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
Програмёр,

Какой к монахам preg_match()?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$xml="<response> 
<version>1.2</version>
<merchant_id></merchant_id>
<order_id> ORDER_123456</order_id>
<amount>1.01</amount>
<currency>UAH</currency>
<description>Comment</description>
<status>success</status> 
</response>";

$simple = simplexml_load_string($xml);

echo $simple->status=="success"?"foo":"bar";
...
Рейтинг: 0 / 0
06.07.2013, 09:45
    #38322630
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
MikkiMouse,

скорость. Если требуется распарсить весь xml - тогда использование simpleXML имеет смысл. Если же вытянуть 1 параметр - смысла парсить всё не вижу :).
Однако подход "на любителя"
...
Рейтинг: 0 / 0
06.07.2013, 10:59
    #38322653
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
Алексей234,

Если нужен просто status, то substr() будет во много раз быстрее предложенных выше вариантов.
...
Рейтинг: 0 / 0
06.07.2013, 11:19
    #38322659
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условия для текста в переменой
phpz,

да, именно... в сочитании с strstr.
Просто регулярки более универсальны, потому по привычке их пользую даже там, где может быть излишним.
так что самый быстродейственный - это:
Код: php
1.
$status = substr(strstr(strstr($xml, "<status>"), "</status>", true), 8, -9);


по-моему так.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Условия для текста в переменой / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]