Вернуться   ИнформКлуб - то, что надо! > Научись и научи! > Web программирование > PHP


Comment
 
Tutorial Tools Опции просмотра
Рекомендуемые Учебники
Замена кавычек на «ёлочки» на PHP

Замена кавычек на «ёлочки» на PHP

Опубликовал(а) Gostemilov
04.09.2017
По умолчанию Замена кавычек на «ёлочки» на PHP

Иногда, в целях безопасности либо в целях форматирования текста требуется произвести заменить все кавычки в строке на “ёлочки” (т.е. на символы « и »). Чтобы долго не заморачиваться, прошелся по гуглу и нашел на одном из сайтов подсказку, как это можно реализовать на PHP. Далее, возникла необходимость реализовать это на C#. Ниже привожу оба варианта:


Обратите внимание, что в нижепредставленных функциях кавычки имеют html
вид: « и » но вы можете их заменить на "«" и "»" соотвественно.


Пример реализации на PHP:


/**
* Замена кавычек на "елочки" в PHP
*
* @param string $m исходная строка
* @return string строка с заменёнными кавычками
*/
function replace_quotes($m)
{
$pos = 0;
while (FALSE !== ($pos = strpos($m, '"', $pos)))
{
$m = substr_replace($m, (!ctype_graph($m[$pos-1]) || $pos == 0) ? '«' : '»', $pos, 1); // Спасибо "Анониму" в комментариях за небольшой исправление
$pos += 6;
}
return $m;
}


Пример реализации на C#:


/// <summary>
/// Замена кавычек на "ёлочки" в C#
/// </summary>
/// <param name="m">Исходная строка с текстом</param>
/// <returns>Текст с замененными кавычками</returns>
private string replace_quotes(string m)
{
int at = 0;
int pos = 0;
while((pos < m.Length) && (at > -1))
{
at = m.IndexOf('"', pos);
if (at == -1) break; // Выход из цикла если больше нет нужного символа в строке
pos = at + 1;

Regex R = new Regex(@"[^wd]");

// Если конец строки заканчивается кавычкой
if (pos == m.Length) { m = R.Replace(m, "&raquo;", 1, at); break; }

// Если впереди кавычки идут буквы и цифры, - ставим открывающую "«"
// Если любые другие символы, - ставим закрывающую "»"
Match match = R.Match(m, pos, 1);
if (match.Success) { m = R.Replace(m, "&raquo;", 1, at); }
else { m = R.Replace(m, "&laquo;", 1, at); }
}

return m;
}


Информация
Источник
aione.ru/zamena-kavy...

Tutorial Tools

Comment

Tutorial Tools
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:48. Часовой пояс GMT.


Почитать

Анекдоты
Афоризмы
Поговорки
Пословицы
Форум
Цитатник

Посмотреть

Галерея PNG клипарта
Галерея бесшовных фонов

Скачать

Файловый архив
Скрипты
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. Перевод: zCarot