Хорошо, я пишу комментарии к файлу UTF-8, который я читаю внутри функции ниже, чтобы удалить текст между этими комментариями. Мой вопрос: мне нужно что-то другое, чтобы сделать это успешно для файлов UTF-8? Или будет работать следующий код ниже? В принципе, мне интересно, нужны ли мне функции utf8_decode
и/или utf8_encode
, или, возможно, iconv
?PHP - Нужна ли мне кодировка/декодирование UTF-8?
// This holds the current file we are working on.
$lang_file = 'files/DreamTemplates.russian-utf8.php';
// Can't read from the file if it doesn't exist now can we?
if (!file_exists($lang_file))
continue;
// This helps to remove the language strings for the template, since the comment is unique
$template_begin_comment = '// ' . ' Template - ' . $lang_file . ' BEGIN...';
$template_end_comment = '// ' . ' Template - ' . $lang_file . ' END!';
$fp = fopen($lang_file, 'rb');
$content = fread($fp, filesize($lang_file));
fclose($fp);
// Searching within the string, extracting only what we need.
$start = strpos($content, $template_begin_comment);
$end = strpos($content, $template_end_comment);
// We can't do this unless both are found.
if ($start !== false && $end !== false)
{
$begin = substr($content, 0, $start);
$finish = substr($content, $end + strlen($template_end_comment));
$new_content = $begin . $finish;
// Write it into the file.
$fo = fopen($lang_file, 'wb');
@fwrite($fo, $new_content);
fclose($fo);
}
Спасибо за вашу помощь в этом относительно UTF-8 кодирования и декодирования на строках, даже если они прокомментированы строки.
Когда я пишу php-комментарии в файл UTF-8, я не использую никакого преобразования. Должна ли я быть?? Определения строк между комментариями php уже закодированы в UTF-8 и, похоже, работают нормально в файле. Любая помощь ценится здесь.
Когда вы запускаете код, возникают ли у вас какие-либо проблемы с ним? Нарушаются ли русские символы где-нибудь, где используется этот файл? Можете ли вы открыть файлы, написанные PHP, в текстовом редакторе, и появятся ли символы, как ожидалось? – curtisdf
Я не могу проверить это, потому что мне не хватает файла UTF-8, чтобы проверить это на данный момент в моих точных настройках тестовой среды для фактического содержимого файла. Мне просто интересно, работает ли этот подход без использования какой-либо кодировки и/или декодирования utf8 только для комментариев php? Причина: я пишу php-комментарии в файл раньше, и вышеуказанная функция должна удалить все это. Просто нужно, чтобы кто-то подтвердил, что это лучший способ сделать это только для файлов UTF-8, или если это нужно сделать по-другому? –
Это, вероятно, даст вам более глубокое понимание: [Что каждый программист абсолютно, положительно должен знать о кодировках и наборах символов для работы с текстом) (http://kunststube.net/encoding/) – deceze