Не могли бы вы подсказать, что я делаю не так?
Хакер залил и хочет слить проект в паблик.Это очень странное заявление, т.к. происходит это обычно очень быстро. Пока вы думаете, что делать, проект уже будет слит. Ну, конечно, если это не мега тяжелая база через узкое соединение. Так что хакер сначала сольет проект, а потом уже будет хотеть выложить его в паблик, лениво переписываясь с вами или с кем-либо еще.
function check($a) {
while ($a < 100) $a += 11;
while ($a > 110) $a -= 11;
return $a;
}
echo(check(105-7)); // 109
$Item = [
0, //нумерация с 1
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
[ 'name'=>'название' ],
];
$Model = [
0,
[ 'name'=>'название элемента из второго массива' ],
[ 'name'=>'название элемента из второго массива' ],
[ 'name'=>'название элемента из второго массива' ],
];
$key1 = 1; //для $Item
$key2 = 1; //для $Model
while ($key1 < count($Item) || $key2 < count($Model)) { //итерируем оба массива
if ($key1 < count($Item)) echo("<div class='element'>$key1 ".$Item[$key1]['name']."</div>\n");
if ($key1 / 3 >= $key2) { //если соотношение достигло одной трети
//то вывести один элемент из второго массива
if ($key2 < count($Model)) echo("<div class='spec'>$key2 ".$Model[$key2]['name']."</div>\n");
$key2++; //и посчитать его
}
$key1++;
}
<div class='element'>1 название</div>
<div class='element'>2 название</div>
<div class='element'>3 название</div>
<div class='spec'>1 название элемента из второго массива</div>
<div class='element'>4 название</div>
<div class='element'>5 название</div>
<div class='element'>6 название</div>
<div class='spec'>2 название элемента из второго массива</div>
<div class='element'>7 название</div>
<div class='element'>8 название</div>
<div class='element'>9 название</div>
<div class='spec'>3 название элемента из второго массива</div>
<?php
$str = '{"name": "my "name"", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',' || $c == '}' || $c == ']' || $c == ':') {
//вероятно был конец строки (шанс 99%)
$mode = 0;
$result .= $space.$c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
}
}
return $result;
}
echo(fixJSON($str)); //{"name": "my \"name\"", "value": "123456789"}
?>
<?php
$str = '{"say": ""my name", hi", "value": "123456789"}';
function fixJSON($str) {
$len = strlen($str);
$result = '';
$space = '';
$mode = 0;
for($i=0;$i<$len;$i++){
$c = $str[$i];
switch ($mode) {
case 0: //вне строки
if ($c == '"') $mode = 1;
$result .= $c;
break;
case 1: //внутри строки
if ($c == '"') {
$mode = 3;
$space = $c;
break;
}
if ($c == '\\') $mode = 2;
$result .= $c;
break;
case 2: //сразу после слеша (игнорим один любой символ)
$mode = 1;
$result .= $c;
break;
case 3: //была кавычка внутри строки
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == '}' || $c == ']') {
//вероятно был конец строки (шанс 99%)
$mode = 4;
$space .= $c;
}
elseif ($c == ',' || $c == ':') {
//вероятно был конец строки (шанс 90%)
$mode = 5;
$space .= $c;
} else {
//мы остались внутри строки на 100%. Экранируем
$mode = 1;
$result .= '\\'.$space;
$i--; //уходим назад, т.к. вдруг это снова кавычка
}
break;
case 4: //после спец символа
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif ($c == ',') {
//был конец строки с шансом 99.99%
$mode = 0;
$result .= $space.$c;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
case 5: //после запятой
if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
$space .= $c;
elseif (preg_match('/[0-9"-]+/', $c)) {
//был конец строки с шансом 99.9%
$mode = 0;
$result .= $space;
$i--;
} else {
//внтури строки на 100%
$mode = 1;
$result .= '\\'.$space;
$i--;
}
break;
}
}
if ($mode>2) $result .= $space;
return $result;
}
echo(fixJSON($str)); //{"say": "\"my name\", hi", "value": "123456789"}
?>