const re = /({.*?})/g; // не жадный
let result;
while ((result = re.exec(str)) !== null) {
console.log(JSON.parse(result[1]));
}
$str = "Lorem ip1sum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massages. Aenean commodo ligula eget dolor. Aenean massages. Aenean commodo ligula eget dolor. Aenean massages.";
$limit = 100;
if (mb_strlen($str) <= $limit) {
$result = $str;
} else {
$lastspacePos = mb_strrpos(mb_substr($str, 0, $limit), ' ');
$result = trim(mb_substr($str, 0, $lastspacePos), '.,;&+-\//?!') . '…';
}
echo $result;
mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] ) : int
select `authors`.`name`, `books`.`title`
from `books`
left join `authors` ON `authors`.`id` = `books`.`author_id`
select `authors`.`name`, count(`books`.`id`) as cnt
from `books`, `authors`
group by `books`.`author_id`
having count(`books`.`id`) = 0
select `authors`.`name`, count(`books`.`id`) as cnt
from `books`, `authors`
group by `books`.`author_id`
having count(`books`.`id`) > 1
есть мизерная возможность генерации одинаковой строки
Обучающие задачки разных уровней есть на codewars.com© https://qna.habr.com/answer?answer_id=781606#answe...
И там можно посмотреть как эти задачки решали другие люди, сравнить свое решение, и попытаться понять чем оно лучше или хуже.
просто переименовать один из них, удалив часть названия, чтобы остался только php.ini. Но который?
И нужно ли предпринимать еще дополнительные действия в связи с этим переименованием - вручную задавать пути к ним где-то и т.д.?Файл php.ini подключится автоматически. Но в принципе вы можете иметь сколько угодно конфигов для разных задач и указывать их как описано в документации.