>  기사  >  백엔드 개발  >  PHP에서 다양한 스마트 인용문을 어떻게 변환할 수 있나요?

PHP에서 다양한 스마트 인용문을 어떻게 변환할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-22 06:53:30391검색

How Can I Convert Various Smart Quotes in PHP?

PHP에서 다양한 스마트 따옴표 변환

스마트 인용은 가독성과 심미성을 높이기 위해 타이포그래피에 사용되는 표준 인용 부호의 일반적인 변형입니다. 텍스트의 호소. 텍스트 작업 시 스마트 따옴표를 일반 따옴표로 올바르게 변환하려면 다양한 상황에서 사용되는 스마트 인용 문자의 다양한 범위를 고려하는 것이 중요합니다.

스마트 인용 변환 기능이 향상되었습니다.

다음 향상된 기능은 다양한 스마트 따옴표 문자에 대한 포괄적인 매핑을 통합하여 제공한 원래 기능의 단점을 해결합니다. 최적의 효율성을 위해 문자 맵($chr_map)과 미리 계산된 배열($chr 및 $rpl)을 모두 활용합니다.

<code class="php">$chr_map = array(
    "\xC2\x82" => "'", // U+0082⇒U+201A single low-9 quotation mark
    "\xC2\x84" => '"', // U+0084⇒U+201E double low-9 quotation mark
    "\xC2\x8B" => "'", // U+008B⇒U+2039 single left-pointing angle quotation mark
    "\xC2\x91" => "'", // U+0091⇒U+2018 left single quotation mark
    "\xC2\x92" => "'", // U+0092⇒U+2019 right single quotation mark
    "\xC2\x93" => '"', // U+0093⇒U+201C left double quotation mark
    "\xC2\x94" => '"', // U+0094⇒U+201D right double quotation mark
    "\xC2\x9B" => "'", // U+009B⇒U+203A single right-pointing angle quotation mark

    "\xC2\xAB" => '"', // U+00AB left-pointing double angle quotation mark
    "\xC2\xBB" => '"', // U+00BB right-pointing double angle quotation mark
    "\xE2\x80\x98" => "'", // U+2018 left single quotation mark
    "\xE2\x80\x99" => "'", // U+2019 right single quotation mark
    "\xE2\x80\x9A" => "'", // U+201A single low-9 quotation mark
    "\xE2\x80\x9B" => "'", // U+201B single high-reversed-9 quotation mark
    "\xE2\x80\x9C" => '"', // U+201C left double quotation mark
    "\xE2\x80\x9D" => '"', // U+201D right double quotation mark
    "\xE2\x80\x9E" => '"', // U+201E double low-9 quotation mark
    "\xE2\x80\x9F" => '"', // U+201F double high-reversed-9 quotation mark
    "\xE2\x80\xB9" => "'", // U+2039 single left-pointing angle quotation mark
    "\xE2\x80\xBA" => "'", // U+203A single right-pointing angle quotation mark
);

$chr = array_keys($chr_map); // but: for efficiency you should
$rpl = array_values($chr_map); // pre-calculate these two arrays
$str = str_replace($chr, $rpl, html_entity_decode($str, ENT_QUOTES, "UTF-8"));</code>

이 향상된 기능은 유니코드 호환 접근 방식을 활용하여 포괄적인 범위를 포괄합니다. 스마트 인용 문자. 미리 계산된 배열을 활용하여 스마트 인용을 표준 인용으로 정확하게 변환하는 동시에 높은 수준의 효율성을 유지합니다.

추가 고려 사항:

  • 인코딩 감지: 입력 인코딩이 확실하지 않은 경우 위 함수를 적용하기 전에 utf8_encode()를 사용하여 UTF-8 인코딩을 보장하세요.
  • Windows 코드 페이지 1252 정규화: Windows 코드 페이지 1252에서 유래할 수 있는 텍스트의 경우 정규화 사용을 고려하세요. 맵을 사용하여 특정 코드 포인트를 상응하는 유니코드로 변환합니다.
  • 유니코드 문자 속성: 문자 속성을 사용하면 스마트 따옴표 처리가 더욱 향상되지만 정규 표현식에서의 가용성은 제한됩니다.

위 내용은 PHP에서 다양한 스마트 인용문을 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.