Пробелы в PHP вызывают бессмысленные ошибки?
Я редактирую файл functions.php темы WordPress и всякий раз, когда я редактирую его, даже когда редактирование добавляет один пробел, сервер возвращает
ошибка:
Parse error: syntax error, unexpected '}' in /theme/functions.php on line 1
Вот где я добавляю один пробел:
<?php load_theme_textdomain('theme', get_template_directory() . '/languages');
<— I added a single space here
и все умирает после этого. Это не постоянная ошибка, так как она исчезает после того, как я заменяю весь файл functions.php на резервную копию. Он только реплицируется, когда я редактирую файл, то есть, представлен даже с одним пробелом. Я использую NetBeans и CuteFTP для редактирования и загрузки файлов.
Что здесь происходит?! Это должно быть связано с каким-то качеством файла, так как с точки зрения кода код точно такой же... или, возможно, мой сервер.
Решение:
NetBeans по умолчанию использует определенную кодировку файлов для каждого проекта. Внешние файлы могут иметь другую кодировку, что может вызвать проблемы. Коди содержимое внешнего файла в новый пустой файл, который вы создали через Netbeans.
2 ответа
Это может быть ошибка кодирования. Возможно, когда вы пытаетесь редактировать файл, ваш текстовый редактор включает в себя спецификацию UTF-8 в верхней части.
РЕДАКТИРОВАТЬ
Только что нашел инструкции по сохранению как UTF-8 без спецификации в Notepad ++:
1) Нажмите "Формат". Выберите "Кодировать в UTF-8 без спецификации".
2) Нажмите "Настройки". Нажмите "Настройки". Нажмите "Новый документ / Открыть каталог для сохранения". Выберите "UTF-8 без спецификации".
(Источник: http://www.phpbb.com/community/viewtopic.php?f=66&t=1584655, 5-й ответ снизу)
Но кодировка, которую нужно установить, зависит от исходного файла. Если это не UTF-8, вы должны сохранить оригинальную кодировку (латинская 1 или любая другая).
Вы включаете это в нужном месте? Смотрите http://codex.wordpress.org/Function_Reference/load_theme_textdomain