Страница 12 из 18

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 12:28 am
xor
1. получить свойство объекта в переменную
$var = getGlobal('myObject.myProperty');
1a. произвести математические действия с $var:
$var = ($var + 1000)**2-$var; //Ok, Google php математические функции

2. сохранить значение переменной в свойстве объекта:
setGlobal('myObject.myProperty',$var);

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 7:35 am
Teacher_77
xor писал(а):1. получить свойство объекта в переменную
$var = getGlobal('myObject.myProperty');
1a. произвести математические действия с $var:
$var = ($var + 1000)**2-$var; //Ok, Google php математические функции

2. сохранить значение переменной в свойстве объекта:
setGlobal('myObject.myProperty',$var);
А в каком месте производить все эти замечательные изменения? В методе?

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 9:34 am
skysilver
Teacher_77 писал(а):А в каком месте производить все эти замечательные изменения? В методе?
Можно в методах, можно в сценариях. А также в пол Код шаблонов поведения, элементов меню и т.д. Зависит от конкретной задачи. ;)

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 12:40 pm
Teacher_77
Еще назрело:
вытаскиваю данные с физических счетчиков воды по http через веб-переменные и помещаю в свойства объекта счетчик воды
от физических счетчиков приходит строка типа
hostname:XXXXXXXXXX;vwc11:6;vwa11:3224;vwc21:11;vwa21:3224;vwc31:2;vwa31:3116;vwc41:2;vwa41:3116;
соответственно применял шаблон поиска типа "vwc11:(.+?)"
Пока показания были из одной цифры (например vwc11:6), все работало, а вот как перевалило за 10 (например vwc21:11), начались проблемы.
не подскажете по какому шаблону тащить все цифры показаний счетчика - т.е. то что после ":" и до ";"

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 12:43 pm
nick7zmail
В данном случае советую через php разгребать этот массив. Применение веб-аеременных не сильно оправдано.

Отправлено с моего G8441 через Tapatalk

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 5:48 pm
Teacher_77
nick7zmail писал(а):В данном случае советую через php разгребать этот массив. Применение веб-аеременных не сильно оправдано.

Отправлено с моего G8441 через Tapatalk
Оно конечно может и лучше, только мне как новичку непонятно как.
В веб-переменной строка с http попадает в обработку автоматически
А если делать по другому - как? где?

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 5:59 pm
nick7zmail
Ну как хотите....https://regex101.com/ вот песочница регулярных выражений, которые используются в веб переменных, вот всё о них http://php.net/manual/ru/reference.pcre ... syntax.php вот тут более кратко http://www.php.su/articles/?cat=regexp& ... ....просто подбирайте тот, который будет выдавать нужный результат.

А без php в данной системе тяжеловато будет...советую начать учить, и ваша строка - отличный этому тренер будет. Гуглить - "php разложить строку на массив", и "php циклы".

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 6:05 pm
Teacher_77
Спасибо за ссылки.
Я про другое спрашивал - если разгребать через php - куда код пихать?
Как забирать инфо (строку) с адреса http?

P.S. С математикой более-менее разобрался, обработку свойств объектов запихал в сценарий, поставил на регулярное исполнение.

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 6:10 pm
skysilver
Teacher_77 писал(а):Я про другое спрашивал - если разгребать через php - куда код пихать?
Как забирать инфо (строку) с адреса http?
Код можно пихать в сценарий или метод. Потом их можно вызывать в методе onNewMinute с нужной периодичностью, либо в модуле Cron.

Код: Выделить всё

$result = getURL('http://ip_счетчика', 0);
var_dump($result); 

Re: вопросы от новичка

Добавлено: Вт янв 23, 2018 6:20 pm
skysilver
Teacher_77 писал(а):Оно конечно может и лучше, только мне как новичку непонятно как.

Код: Выделить всё

$result = getURL('http://ip_счетчика', 0);
$result = explode(";", $result);

foreach ($result as $s) {
  if ($s !== '') {
    $val = explode(":", $s);
    echo 'метрика ' . $val[0] . ' равна ' . $val[1] . PHP_EOL;
  }
}