Проще всего эту задачу решить на фронте. Найти родительский блок по его селектору, регуляркой пробежать, обернуть в спаны.
Вот пример оборачивания отдельных букв по условию.
Распыляетесь, дружище!
не понятна ваша цель - хотите знать всего по немногу? Или что-то хорошо?
Начали изучать РНР - изучайте, пока не поймёте, что знаете. Желательно сразу последние спецификации 7+
Рри чем тут node? Там совем другая кухня, он нужен лишь в узкоспециализированных случаях, иначе не даст никакого профита.
Или хотите изучить детально фронт? Тогда нужно помимо перечисленного хорошо изучить яваскрипт.
Кирилл Несмеянов, не понял мысль. Если необязательное значение по умолчанию, то оно подразумевается как null. Если аргумент не задан и нет значения по умолчанию, тогда что?