Код++

28 августа · php

Функция preg_replace_callback_array()

В PHP 7 появилась функция preg_replace_callback_array(). Я её использовал в последнем проекте. Хочется показать на простых примерах, как она работает. Для этого разберём и другие функции. Для понимания статьи нужно знать, как работают регулярные выражения.

Давайте напишем небольшой интерпретатор некоторых BB-кодов.

Замена по одному выражению

Начнём с простой замены: [b]<b> (здесь и далее с учётом пробелов и переносов, то есть варианты типа [ b ] тоже сработают). Для удобства основные символы выделены жёлтым цветом.

$subject = 'To [b]be[/b] or not to be?';
$pattern = '/\[\s*b\s*]/';
$replacement = '<b>';
echo preg_replace($pattern, $replacement, $subject) . PHP_EOL;
// 'To [b]be[/b] or not to be?'
// 'To <b>be[/b] or not to be?'

Читать далее →

Язык C для гениев

Целевая аудитория — владеющие основами алгоритмизации и какого-либо языка программирования, те, кого не пугают слова «переменная» и даже «рекурсия». В курс (пока что) не входят многие серьёзные темы, например, volatile или глубины стандарта. Также я не буду рассматривать конкретные средства разработки, процесс создания проекта и компиляции. Лучше сосредоточимся на средствах языка и стандартной библиотеки. Если вы можете самостоятельно справиться с этим, то справитесь и с материалом. Сперва нужно быть знакомым с основами компьютерных архитектур, уметь переводить числа между разными системами счисления, складывать, вычитать в них и так далее, владеть основами логики, комбинаторики. Не лишним будет умение читать технические тексты по-английски и писать комментарии.

C — язык промышленного программирования, а не учебный, поэтому многие детали могут изначально пугать. Например, диапазоны переменных одного типа при компиляции на разных компьютерах могут различаться, малейшие опечатки — оборачиваться странным поведением программы или непонятными сообщениями об ошибках. Об истории языка и различиях в версиях и стандартах читайте самостоятельно.

Это, скорее, конспект без лишнего шума. Люди не машины, нам нельзя скормить алфавит, ключевые слова, завалить терминами «сигнатура» и «семантика», дать грамматику языка и что-то ждать в ответ. Я буду показывать примеры — от простого к сложному — которые вам нужно компилировать, изучать, как-то изменять. Самостоятельность — ключ к глубокому пониманию.

Оглавление

§ 8.

§ 14.

Компиляция и выполнение программы

 

Литература

 

Задачи

Читать далее →

Нули функции. Численные методы

Постановка задачи: на интервале [a, b] задана функция f(x), удовлетворяющая некоторым условиям. Известно, что на этом интервале только один корень. Требуется его найти.

Читать далее →
3 2 1