如何在PHP中将直接正常引号转换为智能引号?

时间:2018-03-01 08:13:42

标签: php

如何使用字符串替换将直接正常引号转换为php中的智能引号。

<?php
function convert_smart_quotes($string)
{
    $search = '&quot;';

    $replace = array('&ldquo;','&rdquo;');

    return str_replace($search, $replace, $string);
}

echo convert_smart_quotes('"Smaple Text"');
?>

1 个答案:

答案 0 :(得分:2)

您可以使用preg_replace并搜索字边界。

// smart quotes..
$text = preg_replace('~"\b~', '&ldquo;', $text);
$text = preg_replace('~\b"~', '&rdquo;', $text);
// everything else
$text = str_replace('"', '&quot;', $text);

或者如果你想在单一的正则表达式中组合smartquote替换

$text = preg_replace('~"\b(.*?)\b"~', '&ldquo;$1&rdquo;', $text);