Итак, я пишу скрипт PHP, который будет читать в файле CSS, а затем помещать комментарии и фактический CSS в отдельные массивы. Затем скрипт создаст страницу с CSS и все комментарии будут отформатированы.
Основная логика для сценария такова:
- Читать в новой строке
- Если начинается с косой черты или
заканчивается открывающей скобкой, установите
bool для CSS или комментарии к true
- Добавьте эту строку в соответствующий
элемент в соответствующем массиве
- Если последний символ является обратной косой чертой
(конец комментария) или первый
символ является закрывающей скобкой (конец
CSS-тега), установите необходимое значение bool в
ложь
- Промыть, повторить
Если кто-то видит в этом ошибку, не стесняйтесь указывать на нее, но я думаю, что она должна делать то, что я хочу.
Сложная часть - это последний оператор if, проверяющий, является ли последний символ обратной косой чертой. Прямо сейчас у меня есть:
if ($line{(strlen($line) - 3)} == "\\") {do stuff}
где $ line - последняя строка, прочитанная из файла. Не совсем уверен, почему мне нужно возвращаться назад на 3 символа, но я предполагаю, что это потому, что в конце каждой строки при чтении из файла есть новая строка. Тем не менее, это утверждение if никогда не соответствует действительности, даже если есть строки, заканчивающиеся косой чертой. Это
echo "<br />str - 3: " . $line{(strlen($line)-3)};
даже возвращает обратную косую черту, но оператор if никогда не срабатывает.