function CSVToArray(strData, strDelimiter = ','){
const objPattern = new RegExp(
"(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +
"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
"([^\"\\" + strDelimiter + "\\r\\n]*))",
'gi'
);
const arrData = [[]];
let arrMatches = null;
while (arrMatches = objPattern.exec(strData)){
const strMatchedDelimiter = arrMatches[ 1 ];
if (
strMatchedDelimiter.length &&
strMatchedDelimiter !== strDelimiter
) {
arrData.push([]);
}
const strMatchedValue = arrMatches[2]
? arrMatches[2].replace(new RegExp("\"\"", 'g' ), "\"")
: arrMatches[3];
arrData[arrData.length - 1].push(strMatchedValue);
}
return( arrData );
}
console.log(CSVToArray('"a,b",a b,')); // Array(3) [ "a,b", "a b", "" ]
@import
включает CSS (таблицу стилей). А <link>
механизм HTML. Однако браузеры обрабатывают их по-разному. НО все равно <link>
явное преимущество с точки зрения производительности.new Promise(function(e,t) {
if(window.ymaps) window.ymaps.ready(e);
else{window.ymapsReady=e }
....
new Promise(e => window.test = e)
test // ƒ () { [native code] }
.sort((a, b) => a.categoryLevel - b.categoryLevel)
можно убратьconst groupData = (arr) => {
return arr
.sort((a, b) => a.categoryLevel - b.categoryLevel)
.reduce((acc, curr) => {
const {categoryLevel, parentCategoryId} = curr;
const index = acc.findIndex((a) =>
(a[categoryLevel - 1] || {}).categoryId === parentCategoryId);
if (index !== -1) {
acc[index][categoryLevel] = curr;
} else {
acc.push([curr]);
}
return acc;
}, [])
.map((a) => a.map((o) => o.name).join(' - '));
};
const findParents = (id, arr) => {
for (let i = 0, l = arr.length; i < l; ++i) {
const {category: {categoryId, categoryDescription}, children} = arr[i];
const obj = {categoryId, categoryDescription};
if (categoryId === id) {
return [obj];
} else {
const result = findParents(id, children);
if (result) {
return [obj, ...result];
}
}
}
return null;
};
$_SERVER['HTTP_REFERER']
(кто запросил загрузку страницы) смысла тоже нет - если у ифрейма установлен атрибут referrerpolicy:<iframe referrerpolicy='no-referrer'>
header( "Content-Security-Policy: frame-ancestors https://ваш_сайт.ru http://ваш_сайт.ru https://www.facebook.com https://facebook.com https://www.google.com https://google.com;" );
https://www.ваш_сайт.ru http://www.ваш_сайт.ru
Почему блок formproductslider не прокручивается по горизонтали?
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Однако, если установлена опция CURLOPT_RETURNTRANSFER, при успешном завершении будет возвращен результат, а при неудаче - FALSE.
$return=json_decode(curl_exec($curl),true);
curl_setopt_array($curl,[
CURLOPT_USERPWD=>"$api_token:$signature",
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER => true,
]);