1С: быстрая очистка большого регистра сведений
Самый простой способ — создать пустую запись без фильтров:
1 2 3 |
НаборЗаписей = РегистрыСведений.наш_регистр.СоздатьНаборЗаписей(); НаборЗаписей.Записать(); |
Жизнь замечательных грибов
Самый простой способ — создать пустую запись без фильтров:
1 2 3 |
НаборЗаписей = РегистрыСведений.наш_регистр.СоздатьНаборЗаписей(); НаборЗаписей.Записать(); |
Задача: в приложение на IOS отправить push уведомление из PHP
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
public function SendPushIOS($token,$title,$message){ $rs=false; $notification_payload = [ "aps" => [ "alert" => [ //"title" => "Зарядись!", "body" => $message, // "action-loc-key" => "PLAY" ], "badge" => 0, "sound" => "bingbong.aiff" ] ]; $token_key = $this->server_key_ios; //echo "!! token_id IOS: $this->server_token_id_ios\n"; $jwt_header = [ 'alg' => 'ES256', 'kid' => $this->server_token_id_ios ]; //echo "!!team_id:$this->server_team_id_ios\n"; $jwt_payload = [ 'iss' => $this->server_team_id_ios, 'iat' => time() ]; $raw_token_data = self::b64($jwt_header, true).".".self::b64($jwt_payload, true); $signature = ''; openssl_sign($raw_token_data, $signature, $token_key, 'SHA256'); $jwt = $raw_token_data.".".self::b64($signature); // send push $request_body = json_encode($notification_payload); $endpoint = 'https://api.push.apple.com/3/device'; $url = "$endpoint/$token"; $ch = curl_init($url); //echo "!!server_bandle_id_ios:$this->server_bandle_id_ios\n"; curl_setopt_array($ch, [ CURLOPT_POSTFIELDS => $request_body, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_2_0, CURLOPT_HTTPHEADER => [ "content-type: application/json", "authorization: bearer $jwt", "apns-topic: $this->server_bandle_id_ios" ] ]); $result_curl=curl_exec($ch); $result = json_decode($result_curl); if (is_null($result)) { $log= new TLog($this->api); $log->InsertLogBoiler([ "source_id"=> TLog::S_Messages, "comment"=>"Ошибка отправки PUSH IOS", "raw_package"=>curl_error($ch).$result_curl, "reason"=> TLog::R_Error ]); } else { if ((int)$result>0){ //if ($result->success>0){ $rs=true; }; }; curl_close($ch); return $rs; } public function b64($raw, $json=false){ if($json) $raw = json_encode($raw); return str_replace('=', '', strtr(base64_encode($raw), '+/', '-_')); } |
Задача: удалить из переменной все тэги вида <тэг>бла-бла</тэг>
Решение: воспользуемся регуляркой
1 2 3 |
txt="<a>Ссылка</a> А тут всё хорошо"; txt=txt.replace(/(<([^>]+)>)/ig, ""); console.log(txt) |
Выведет в консоль только «А тут всё хорошо»
Для того чтобы отправлять пуш уведомления, необходимо получить ключ установки приложения и знать «ключ сервера». Более подробная информация в консоли Firebase
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
public function SendPushAndroid($server_key,$token,$title,$message){ $data = json_encode([ "to" => $token, "notification" => [ "body" => $message, "title" => $title, "icon" => "ic_launcher" ] ]); $url = 'https://fcm.googleapis.com/fcm/send'; $server_key = $server_key; $headers = array('Content-Type:application/json','Authorization:key='.$server_key); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = curl_exec($ch); var_dump($result); if ($result === FALSE) { die('Oops! FCM Send Error: ' . curl_error($ch)); } curl_close($ch); } |