var
всегда «сползает» наверх функции – это называется var hoisting («поднятие или всплытие переменных»). Объявление переменных (как и любые другие объявления) обрабатываются до выполнения кода. Где бы не находилось объявление, это равнозначно тому, что переменную объявили в самом начале кода.
for( /*...*/ ) {
var i = 3;
// ...
}
var i;
// ...
for( /*...*/ ) {
i = 3;
// ...
}
.forefront-element {
-webkit-transform: translateZ(999px) scale(.7);
transform: translateZ(999px) scale(.7);
z-index: 1;
}
.base-element {
-webkit-transform: translateZ(0);
transform: translateZ(0);
z-index: 4;
}
.background-element {
-webkit-transform: translateZ(-999px) scale(2);
transform: translateZ(-999px) scale(2);
z-index: 3;
}
var tmpl = "http://site.ru/%RANDOM%.jpg"
%RANDOM%
на очередное число.var All = [], i, N = 4, Selected = [], pos;
for( i = 1; i <= 100; i++) All.push(i);
// в массиве All теперь числа от 1 до 100
while( All.length > 0 && Selected.length < N) { // пока есть откуда брать и ещё не набрали N чисел
pos = Math.floor( All.length * Math.random()); // случайный индекс из оставшихся элементов
// Из массива All значение удаляется, он становится короче.
// Это гарантия неповторения одинакового числа.
Selected.push( All.splice( pos, 1));
}
// в массиве Selected теперь N случайных неповторяющихся чисел из диапазона от 1 до 100
var result = [];
while( Selected.length) { // пока в массиве есть выбранные числа
result.push( // в результат вставляем..
tmpl.replace( // ..копию строки tmpl, в которой заменили..
'%RANDOM%', // ..подстроку %RANDOM%
Selected.pop()) // ..на число, которое взяли из Selected.
// взятое число из Selected удалилось, массив стал короче.
);
}
/* результат, массив строк: [
"http://site.ru/45.jpg",
"http://site.ru/29.jpg",
"http://site.ru/46.jpg",
"http://site.ru/97.jpg"
] */
var re = new RegExp('(\\d+\.?\\d+%)', 'g');
"If 43 is after a 999.99% reduction, then it was"
.replace( re, '<mark>$1</mark>')
/*
If 43 is after a <mark>999.99%</mark> reduction, then it was
*/
$stock = [
["id"=>1, "ver"=>13, "name"=>"gta v"],
["id"=>2, "ver"=>48, "name"=>"gta sa"],
["id"=>3, "ver"=>119, "name"=>"chess"],
];
$total = 0;
foreach($stock as $v) $total += $v["ver"];
$rnd = rand(1, $total);
$run = 0;
foreach($stock as $v) {
$run += $v["ver"];
if( $rnd <= $run) break;
}
$prizeName = $v["name"];
/**
* Make Dates according to selected days of week till the specified date
* @param Array weekdays: 0 - Sunday, 1 - Monday, ..
* @param Mixed Date or String - last day of range
*
* @return Array of Date objects
*/
function getDates( weekDays, lastDate) {
if(typeof lastDate === 'string') lastDate = new Date(lastDate);
var today = new Date(), dow, i, D, datesPool = [], result = [];
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
dow = today.getDay();
for(i=0; i<7; i++) {
if( !~weekDays.indexOf( (dow + i)%7)) continue;
D = new Date();
D.setTime( today.getTime());
D.setDate( D.getDate() + i);
if( D.getTime() > lastDate.getTime()) continue;
datesPool.push( D);
}
if( datesPool.length === 0) return result;
while(true) {
for( i = 0; i < datesPool.length; i++) {
D = datesPool[i];
if( D.getTime() > lastDate.getTime()) return result;
if( result.length > 1000) return result;
result.push( "" + D.getDate() + "." + (1 + D.getMonth()) + "." + D.getFullYear().toString().substr(2));
D.setDate( D.getDate() + 7);
}
}
}
getDates( [2,3], '2017-07-31') // 19.7.17,25.7.17,26.7.17
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /path/to/access.log combined if=$loggable;
$status
) 2xx или 3xx, т.е. начинается с цифры 2 или 3, переменная $loggable
принимает значение 0
. В параметре if
директивы access_log
нулевое значение приводит к выключению логгинга в этих случаях. LOCK TABLES tiles, points WRITE;
-- тут конвертируем одно в другое
UNLOCK TABLES;
project_files
, который потом можно подключать к php через --volumes-from project_files
FROM ubuntu
RUN apt-get update && apt-get install -y git
RUN mkdir /root/.ssh/
COPY id_rsa /root/.ssh/id_rsa
# Add bitbuckets key
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
# CLone repo
RUN git clone git@bitbucket.org:username/projectname.git /project_files
# Create volume
VOLUME /project_files
id_rsa
и билдите docker build -t myproject/files .
и создаёте контейнер docker create --name project_files myproject/files /bin/true
docker pull composer/composer
Надо его запустить и установить зависимости вашего проекта, подключив тот контейнер с файлами проекта:docker run --rm --volumes-from project_files -w "/project_files" composer install
docker run \
--name myproject_php \
--volumes-from project_files \
php:5-fpm
* 13,14 17 7 * /usr/bin/php votefake.php >/dev/null 2>&1
* 9,10 19 7 * /usr/bin/php votefake.php >/dev/null 2>&1
crontab -e
sudo crontab -e -u www-data