|
Ok!
|
|
|
Ok!
|
---|---|---|---|---|
320 | async function getRutubePreview(id) { let url = `https://rutube.ru/api/video/${id}/thumbnail/`; let response = await fetch(url); if (response.ok) { let json = await response.json(); console.log(json.url); return json.url; } else { return `{"error": "Ошибка HTTP: ${response.status}")`; } } getRutubePreview('86da488c8e7f1427049c2f2fea207989'); | js, rutube thumbnail url | 100 | Получить превью Рутуб с помощью Яваскрипт |
295 | new Date($('[type="datetime-local"]').val()).toLocaleString('ru-RU').split(", ").join(" ").substr(0, 16) | дата, js | 9000 | Выведет 14.11.2024 10:31 |
287 | {"id": "078c5c33e05817d77b43714cdb53240e", "title": "u0422u0438u0431u0435u0442u0441u043au0438u0439 u043cu0430u0441u0441u0430u0436 u041au0443u041du044cu0435. u0422u043eu0447u0435u0447u043du044bu0439 u044du043du0435u0440u0433u0435u0442u0438u0447u0435u0441u043au0438u0439 u043cu0430u0441u043bu044fu043du044bu0439 u043cu0430u0441u0441u0430u0436.", "description": "u041cu0430u0441u0441u0430u0436 u041au0443u043du044cu0435 - u0440u0430u0437u043du043eu0432u0438u0434u043du043eu0441u0442u044c u043cu0430u0441u043bu044fu043du043eu0433u043e u043cu0430u0441u0441u0430u0436u0430, u043au043eu0442u043eu0440u044bu0439 u043fu0440u0430u043au0442u0438u043au0443u0435u0442u0441u044f u0432 u0441u0438u0441u0442u0435u043cu0435 u0442u0440u0430u0434u0438u0446u0438u043eu043du043du043eu0439 u0442u0438u0431u0435u0442u0441u043au043eu0439 u043cu0435u0434u0438u0446u0438u043du044b. u041eu043d u044du0444u0444u0435u043au0442u0438u0432u0435u043d u043fu0440u0438 u043fu0440u043eu0431u043bu0435u043cu0430u0445 u043eu043fu043eu0440u043du043e- u0434u0432u0438u0433u0430u0442u0435u043bu044cu043du043eu0433u043e u0430u043fu043fu0430u0440u0430u0442u0430, u0437u0430u0441u0442u043eu044f u043bu0438u043cu0444u044b u0438 u043au0440u043eu0432u0438, u0431u043eu043bu044fu0445 u0432 u0441u043fu0438u043du0435 u0438 u043fu043bu0435u0447u0430u0445, u0441u043du0438u043cu0430u0435u0442 u043cu044bu0448u0435u0447u043du044bu0439 u0441u043fu0430u0437u043c, u0440u0430u0441u0441u043bu0430u0431u043bu044fu0435u0442 u043du0430u043fu0440u044fu0436u0435u043du043du044bu0435 u043cu044bu0448u0446u044b, u0431u0430u043bu0430u043du0441u0438u0440u0443u0435u0442 u0432u0441u0435 u044du043du0435u0440u0433u0438u0438 u0442u0435u043bu0430, u0440u0430u0432u043du043eu0432u0435u0441u0438u0435 u043au043eu0442u043eu0440u044bu0445 u0430u0432u0442u043eu043cu0430u0442u0438u0447u0435u0441u043au0438 u043eu0431u0435u0441u043fu0435u0447u0438u0432u0430u0435u0442 u0445u043eu0440u043eu0448u0435u0435 u0437u0434u043eu0440u043eu0432u044cu0435 u0438 u0433u0430u0440u043cu043eu043du0438u044e. u041cu0430u0441u0441u0430u0436 u043fu0440u043eu0432u043eu0434u0438u0442 u041eu0440u043bu043eu0432 u0418.u0410. https://sagandali.com/specialisti/orlov-ivan-aleksandrovich.html u0421u0430u0439u0442 u043au043bu0438u043du0438u043au0438 u0421u0430u0433u0430u043d u0414u0430u043bu0438 https://sagandali.com/ u0418u043du0441u0442u0430u0433u0440u0430u043c https://www.instagram.com/sagan_dali/ u0413u0440u0443u043fu043fu0430 u0412u041a https://vk.com/vostochnaya_medicina_moskva u0413u0440u0443u043fu043fu0430 FB https://www.facebook.com/sagandalimed/ u0413u0440u0443u043fu043fu0430 u041eu0434u043du043eu043au043bu0430u0441u0441u043du0438u043au0438 https://www.ok.ru/profile/587980932899 #u043au0443u043du044cu0435 #u0442u043eu0447u0435u0447u043du044bu0439 #u043cu0430u0441u0441u0430u0436 #u044du043du0435u0440u0433u0435u0442u0438u0447u0435u0441u043au0438u0439 #massage", "thumbnail_url": "https://pic.rutubelist.ru/video/85/87/85870d3ed1d0ed0968d95d7ef5162c72.jpg", "is_audio": false, "created_ts": "2024-05-22T18:26:45", "video_url": "https://rutube.ru/video/078c5c33e05817d77b43714cdb53240e/", "track_id": 214925787, "hits": 27, "duration": 60, "is_livestream": false, "last_update_ts": "2024-05-22T18:28:36", "stream_type": null, "origin_type": "rtb", "picture_url": "", "preview_url": "https://preview.rutube.ru/preview/078c5c33e05817d77b43714cdb53240e.webp?exp=1725884596&s=hcdN0xCCAh1rtIosyMTW6A", "author": {"id": 36961394, "name": "channel_sagandali", "avatar_url": "https://pic.rutubelist.ru/user/71/ab/71abefcb1a4d25c44cad9cbcac1cf145.jpg", "site_url": "https://rutube.ru/video/person/36961394/", "is_allowed_offline": true}, "is_adult": false, "pg_rating": {"age": 12, "logo": "https://pic.rutubelist.ru/agerestriction/99/0e/990e87f25d8689833de24c0eb7eaec81.png"}, "publication_ts": "2024-05-22T18:27:56", "extra_params": {}, "future_publication": null, "is_club": false, "is_classic": true, "is_paid": false, "product_id": null, "category": {"id": 13, "category_url": "https://rutube.ru/video/category/13/", "name": "u0420u0430u0437u043du043eu0435"}, "is_official": false, "is_licensed": false, "action_reason": {"id": 0, "name": ""}, "embed_url": "https://rutube.ru/play/embed/078c5c33e05817d77b43714cdb53240e", "html": "<iframe width="720" height="405" src="https://rutube.ru/play/embed/078c5c33e05817d77b43714cdb53240e" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen allow="encrypted-media"></iframe>", "is_hidden": false, "has_high_quality": false, "is_deleted": false, "source_url": "https://rutube.ru/video/078c5c33e05817d77b43714cdb53240e/", "rutube_poster": null, "pepper": null, "show": null, "persons": "https://rutube.ru/api/metainfo/video/078c5c33e05817d77b43714cdb53240e/videoperson", "genres": "https://rutube.ru/api/metainfo/video/078c5c33e05817d77b43714cdb53240e/videogenre", "music": null, "hashtags": ["massage", "u043au0443u043du044cu0435", "u043cu0430u0441u0441u0430u0436", "u0442u043eu0447u0435u0447u043du044bu0439", "u044du043du0435u0440u0433u0435u0442u0438u0447u0435u0441u043au0438u0439"], "all_tags": [], "restrictions": {"country": {"allowed": ["-", "AB", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "OS", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"], "restricted": []}}, "feed_url": "https://rutube.ru/video/person/36961394/", "feed_name": "channel_sagandali", "feed_subscription_url": "https://rutube.ru/api/subscription/card/userchannel/36961394", "feed_subscribers_count": 0, "episode": null, "season": null, "is_serial": false, "ext_id": null, "tv_show_id": null, "club_params": "", "premier_url": null, "hide_comments": false, "hide_chat": false, "hide_likes": false, "hide_dislikes": false, "stream_end_ts": null, "is_original_content": false, "kind_sign_for_user": false, "is_reborn_channel": false, "topics": [], "properties": {"hide_comments": false, "is_donate_allowed": false}} | rutube json | 9020 | rutube json on request |
279 | <script> document.addEventListener("DOMContentLoaded", function(){ let tilDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 14); let tilDay = new Date(tilDate).getDate(); let monthNames = [ "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" ]; if(document.querySelector('[field="tn_text_1721979743635"]') !== null){ new_text = "Акция до " + tilDay + " " + monthNames[tilDate.getMonth()]; document.querySelector('[field="tn_text_1721979743635"] strong').textContent = new_text; } }); </script> | js, 14 дней, Тильда | 12000 | Добавит 14 дней в Тильде в блоке |
271 | // Simulate an HTTP redirect: window.location.replace("http://www.w3schools.com"); | js, redirect | 155 | js редирект |
262 | document.querySelectorAll('[name="CallForm[email]"]').forEach(i => { if(i.value != '') { return name = i.value; } }); | js, form | 340 | Если много форм на сайте с одинаковыми названиями полей, выбрать непустое |
257 | <script> $(document).ready(function(){ $('<script/>',{type:'text/javascript', src:'https://w561931.yclients.com/widgetJS'}).appendTo('head'); }); </script> | js, document.ready, load script | 450 | Загрузить js скрипт после загрузки страницы |
254 | document.addEventListener("DOMContentLoaded", ()=>{ document.querySelector("#get_data_by_inn").addEventListener("click", ()=> { (async function get_jur_data() { let url = "https://' . $_SERVER['HTTP_HOST'] .'/test/inn.json"; fetch(url, { headers: { Authentication: "secret" }}) .then((response) => { return response.json(); }) .then((data) => { console.log(data); }); })() }); }); | json, fetch, js | 670 | Запрос json через javascript |
247 | function loadImages(block) { Array.from(block.querySelectorAll('img[data-src]')).forEach(function (img, i) { let _img = new Image, _src = img.getAttribute('data-src'); let wrap = img.closest('.is-loader'); _img.onload = function () { img.src = _src; img.classList.add('is-loaded'); if (wrap.length > 0) wrap.classList.remove('is-loader'); } if (img.src !== _src) _img.src = _src; }); } | изображения, загрузка, load, js | 3000 | Загрузка картинок с атрибутом data-src |
246 | JSON_UNESCAPED_UNICODE => 256 | unicode, json, php | 240 | Числовое представление константы JSON_UNESCAPED_UNICODE |
242 | use BitrixMainPageAsset; use BitrixMainPageAssetLocation; Asset::getInstance()->addString("<script>***</script>", true, AssetLocation::AFTER_JS); // AssetLocation::BEFORE_CSS; // AssetLocation::AFTER_CSS; // AssetLocation::AFTER_JS_KERNEL // AssetLocation::AFTER_JS | head, js, css, d7 | 10980 | Вставка ссылок в head Битрикс |
241 | let dano = $('[name=ORDER_PROP_20]').val(); // 19.03.2023 let dateEn = new Date(dano.substr(6,4), dano.substr(4,2) - 1, dano.substr(0,2), 0, 0, 0).toLocaleDateString('en-CA'); // 2023-03-19 | date, JS, convert | 200 | Конвертация импортной даты в русскую |
240 | document.addEventListener("DOMContentLoaded", function (event) { setTimeout(function() { let container = document.createElement("div"); container.classList.add('g-recaptcha'); container.setAttribute('id', 'g-recaptcha'); container.dataset.sitekey = '6Lc-rR0nAAAAAApbMeAGotqehDQZrx7IeUrAajI2'; let prev = document.querySelector('[name="form_hidden_45"]'); prev.after(container); },0); }); | JS, javascript, captcha | 120 | Добавить блок Капча после поля формы Яваскрипт |
228 | new Date().toLocaleString('en-CA').substr(0,10) | дата, JS, date | 100 | Дата в Javascript ГГГГ-ММ-ДД |
227 | const numbers = [1, 2, 3]; const doubled = numbers.map(x => x * 2); // [2, 4, 6] | map, js | 19800 | Метод map в javascript |
226 | var player = {score: 1, name: 'Jeff'}; var newPlayer = Object.assign({}, player, {score: 2}); // or var newPlayer = {...player, score: 2}; | create new object, js | 100300 | Создать новый объект из старого в Javascript |
218 | function loadScript(url, callback) { const element = document.createElement("script"); element.type = "text/javascript"; element.src = url; element.onload = callback; document.body.appendChild(element); } loadScript("js/common.js", () => { loadScript("<https://cdn.jsdelivr.net/npm/luxon@1.25.0/build/global/luxon.min.js>", () => { console.log("timer.js ") }) }) | loadscript, js | 1200 | Скрипт чтоб загрузить другой скрипт |
212 | $(document).ready(function(){ let tilDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 5); let tilDay = new Date(tilDate).getDate(); let monthNames = [ "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" ]; if($('[field="tn_text_1655377664248"]').length){ new_text = tilDay + " " + monthNames[tilDate.getMonth()]; $('[field="tn_text_1655377664248"] span').text(new_text); } }); | 5 дней, JS | 20010 | Добавит 5 дней |
211 | let worker = { slow(min, max) { alert(`Called with ${min},${max}`); return min + max; } }; function cachingDecorator(func, hash) { let cache = new Map(); return function() { let key = hash(arguments); // (*) if (cache.has(key)) { return cache.get(key); } let result = func.call(this, ...arguments); // (**) cache.set(key, result); return result; }; } function hash(args) { return args[0] + ',' + args[1]; } worker.slow = cachingDecorator(worker.slow, hash); alert( worker.slow(3, 5) ); // работает alert( "Again " + worker.slow(3, 5) ); // аналогично (из кеша) | caching decorator, js | 24600 | Кеширующая js функция |
206 | const add = (a) => (b) => a + b; console.log (add(3)(2)) | js, двойная функция | 100 | Пример двойной функции в Яваскрипт |
204 | var p1 = Promise.resolve(3); var p2 = 1337; var p3 = new Promise((resolve, reject) => { setTimeout(resolve, 100, "foo"); }); Promise.all([p1, p2, p3]).then(values => { console.log(values); }); | Promise, JS | 10900 | Промис яваскрипт |
203 | /^([a-z0-9_.-]+)@([a-z0-9_.-]+).([a-z.]{2,6})$/ | regexp, email. JS | 14800 | Регулярное выражение для проверки email |
202 | /^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/ | regexp, url, JS | 1300 | Регулярное выражение для проверки URL |
201 | function send(onError, onSuccess, url, method = 'GET', data = null, headers = [], timeout = 60000) { let xhr; if (window.XMLHttpRequest) { // Chrome, Mozilla, Opera, Safari xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { // Internet Explorer xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.open(method, url, true); headers.forEach((header) => { xhr.setRequestHeader(header.key, header.value); }) xhr.timeout = timeout; xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if(xhr.status >= 400) { onError(xhr.statusText) } else { onSuccess(xhr.responseText) } } } xhr.send(data); } | xhr, request, XMLHttpRequest, JS | 12090 | XMLHttpRequest обернутый в функцию |
197 | let d = new Date(); let m = String(d.getMonth() + 1).padStart(2, '0'); | js,javascript,month with 0,month with zero | 340 | В яваскрипте получить месяц номер с ведущим нулём |
190 | <script> $(document).ready(function(){ function getRemanningDays() { var date = new Date(); var time = new Date(date.getTime()); time.setMonth(date.getMonth() + 1); time.setDate(0); var days = time.getDate() > date.getDate() ? time.getDate() - date.getDate() : 0; return days; } setInterval(function(){ let dateNow = new Date(); let lastDate = new Date(new Date().getFullYear(), new Date().getMonth() + 2, 0).getDate(); let mon = dateNow.getMonth(); let monthNames = [ "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" ]; if($('[field="tn_text_1620984661425"]').length){ let text = $('[field="tn_text_1620984661425"]').text(); let part = text.substr(18); let now = new Date(); let new_text = 'Акция действует до '; if(getRemanningDays() < 15){ new_text = new_text + lastDate + " " + monthNames[dateNow.getMonth() + 1]; $('[field="tn_text_1620984661425"]').text(new_text); } } }, 1000); }) </script> | до конча месяца, изменить дату, js | 200 | Акция если до конца месяца менее 10 дней, то акция продляется до конца следующего месяца |
188 | var hr = $('body').find('.popup_image') hr.each(function(){ console.log($(this).attr('href') + ' ' + $(this).attr('title')); }) | парсинг js | 100 | Парсинг ссылок яваскриптом |
166 | <script> document.addEventListener("touchstart", function(e) { console.log(e.defaultPrevented); // will be false e.preventDefault(); // does nothing since the listener is passive console.log(e.defaultPrevented); // still false }, Modernizr.passiveeventlisteners ? {passive: true} : false); </script> | touchstart,passive,js | 100 | Пассивный ивент листнер |
138 | var dayArr1 = $('.order-form input[name="user_f_9_2"]').val().split('.'); var dFor1 = dayArr1[1] + '-' + dayArr1[0] + '-' + '20' + dayArr1[2]; | covert date, js date | 9800 | Конвертировать дату в яваскрипт формат |
137 | if ($('#phone_inp').val().length){ var ph = $('#phone_inp').val().replace(/[^0-9.]/g, ""); if(ph.length == 11) { | телефон, цифры, digits, phone number, js | 130 | Проверка телефона на число заполненных цифр |
126 | document.URL.split('/')[document.URL.split('/').length - 2] | url, js, last folder, последняя папка, яваскрипт | 120 | js найти последнюю папку в УРЛ |
63 | if($("[name=form_text_21]").val().replace(/D+/g, '').length == 11) | js,javascript,phone,длина телефона, число цифр в номере телефона | 1300 | Проверка числа цифр в номере телефона яваскрипт |
56 | time = new Date().getHours() + ":" + new Date().getMinutes() | время, яваскрипт, время сейчас, js, time now, time | 90 | Время сейчас — часы : минуты |
55 | var d = date_form.replace(/(d+)-(d+)-(d+)/, '$3.$2.$1') | дата, конверт, яваскрипт, дата по-русски, convert, javascript, js, date lat to rus | 250 | Яваскрипт преобразование (конверт) даты евро в русскую "2018-08-15" в "15.08.2018" |
54 | //Если с английского на русский, то передаём вторым параметром true. var transliterate = ( function() { var rus = "щ ш ч ц ю я ё ж ъ ы э а б в г д е з и й к л м н о п р с т у ф х ь".split(/ +/g), eng = "shh sh ch cz yu ya yo zh `` y e a b v g d e z i j k l m n o p r s t u f x ``".split(/ +/g); return function(text, engToRus) { var x; for(x = 0; x < rus.length; x++) { text = text.split(engToRus ? eng[x] : rus[x]).join(engToRus ? rus[x] : eng[x]); text = text.split(engToRus ? eng[x].toUpperCase() : rus[x].toUpperCase()).join(engToRus ? rus[x].toUpperCase() : eng[x].toUpperCase()); } return text; } } )(); | транслит, translit, латинский-русский, lat-cyr, javascript, js | 350 | Транслитерация с английского в русский Яваскрипт |
50 | <script> jQuery('.order-form-submit').click(function send_order(){ gtag('event', 'purchase', { "transaction_id": <?=rand(1,1000)?>, "affiliation": "La Maree Buy", "value": {TOVAR_SUM}, "currency": "RUR", "tax": 1.18, "shipping": 350, "items": <?=json_encode( $GLOBALS['item'], JSON_UNESCAPED_UNICODE ); ?> }); }); </script> | gtag, js, аналитика, purchase | 4899 | Скрипт добавки товара в Аналитику gtag js |
48 | json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); | json, json_encode, utf-8 символы | 450 | Кодировать в json без преобразования кириллических символов и слэш |
27 | <?php function Escape_win ($path) { $path = strtoupper ($path); return strtr($path, array("U0430"=>"а", "U0431"=>"б", "U0432"=>"в", "U0433"=>"г", "U0434"=>"д", "U0435"=>"е", "U0451"=>"ё", "U0436"=>"ж", "U0437"=>"з", "U0438"=>"и", "U0439"=>"й", "U043A"=>"к", "U043B"=>"л", "U043C"=>"м", "U043D"=>"н", "U043E"=>"о", "U043F"=>"п", "U0440"=>"р", "U0441"=>"с", "U0442"=>"т", "U0443"=>"у", "U0444"=>"ф", "U0445"=>"х", "U0446"=>"ц", "U0447"=>"ч", "U0448"=>"ш", "U0449"=>"щ", "U044A"=>"ъ", "U044B"=>"ы", "U044C"=>"ь", "U044D"=>"э", "U044E"=>"ю", "U044F"=>"я", "U0410"=>"А", "U0411"=>"Б", "U0412"=>"В", "U0413"=>"Г", "U0414"=>"Д", "U0415"=>"Е", "U0401"=>"Ё", "U0416"=>"Ж", "U0417"=>"З", "U0418"=>"И", "U0419"=>"Й", "U041A"=>"К", "U041B"=>"Л", "U041C"=>"М", "U041D"=>"Н", "U041E"=>"О", "U041F"=>"П", "U0420"=>"Р", "U0421"=>"С", "U0422"=>"Т", "U0423"=>"У", "U0424"=>"Ф", "U0425"=>"Х", "U0426"=>"Ц", "U0427"=>"Ч", "U0428"=>"Ш", "U0429"=>"Щ", "U042A"=>"Ъ", "U042B"=>"Ы", "U042C"=>"Ь", "U042D"=>"Э", "U042E"=>"Ю", "U042F"=>"Я")); } $str = "u0430u043fu044bu0443u043au0435u043f "; print Escape_win ($str); ?> | json, decode | 1030 | Преобразовать в русскоязычные символы |