Замена кавычек на “ёлочки” в C# и PHP

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

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

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

  • Аноним

    PHP.
    Если вызвать функцию вот с таким параметром:
    replace_quotes(‘Привет, “валенок”!’)

    то на выходе получим вот это:
    Привет, «валенок«!

    Подправил строку
    $m = substr_replace($m, (isset($m[$pos+1]) && ctype_graph($m[$pos+1]) || $pos == 0) ? ‘«’ : ‘»’, $pos, 1);

    на
    $m = substr_replace($m, (!ctype_graph($m[$pos-1]) || $pos == 0) ? ‘«’ : ‘»’, $pos, 1);

    Итог:
    Привет, «валенок»!

    • Office59ru

      Спасибо огромно!

    • SEr

      Спасибо, добавил ваш вариант в описание.

  • http://www.facebook.com/profile.php?id=100001743805217 Сергей Ожерельев

    Спасибо, помогло. Портировал на 1С.

  • Артем

    Обе реализации мне не помогли что с исправлением что без, исправил, теперь для моего случая работает(у меня приходит стока текста в которой возможно будут кавычки которые надо заменить на кавычки елочками):
    function replaceQuotes($m) {
    $pos = 0;
    $is_right_quote = 0;
    while (FALSE !== ($pos = strpos($m, ‘”‘, $pos))) {
    if(!$is_right_quote) {
    $m = substr_replace($m, ‘«’, $pos, 1);
    $is_right_quote = 1;
    } else {
    $m = substr_replace($m, ‘»’, $pos, 1);
    $is_right_quote = 0;
    }
    $pos += 6;
    }
    return $m;
    }