PHP - preg_replace ¤È EUC

PHP - preg_replace ¤È EUC

Perl¤ÎÀµµ¬É½¸½¤òÍøÍѤ·¤¿¤È¤­¡¢preg_replace ¤ò»È¤¦¤È EUC ¤Î°·¤¤¤ËÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£EUC ¤Ç¤Ï¡¢¹¥¢¾¥¹¥È ¤Ê¤Î¤Ç ¡Ö¹¥¡×¤È¤¤¤¦´Á»ú¤òÃÖ¤­´¹¤¨¤è¤¦¤È¤·¤¿¤È¤­¤Ë¡Ö¥¹¥È¡×¤Î¥¹¤Î£²¥Ð¥¤¥ÈÌܤȥȤΣ±¥Ð¥¤¥ÈÌܤ˥ޥåÁ¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¤½¤³¤Ç¡¢EUC¤ò°ìö UTF-8 ¤ËÊÑ´¹¤·¤ÆÀµµ¬É½¸½¤òÍøÍѤ·¤Þ¤¹¡£¤·¤«¤·¡¢½èÍý¤¬ÃÙ¤¤¤Î¤¬·çÅÀ¤Ç¤¹¡£

¥½¡¼¥¹¥³¡¼¥É

<?php
  // ¥¿¥°¤Î³°¤Îʸ»ú¤ò¥Ü¡¼¥ë¥É¤Ë
  $string  = '¤³¤ì¤Ï<a href="abc.php?d=¹¥¤­">¹¥¤­<a>¤Ê¥Æ¥¹¥È¤Ç¤¹¡£';
  $replace = '¹¥';

  // ´Ö°ã¤Ã¤ÆÃÖ´¹¤·¤Æ¤·¤Þ¤¦
  print preg_replace("/((?:\G|>)[^<]*?)($replace)/i", "\\1<b>\\2</b>", $string)."\n";

  // °ìö¡¢UTF-8 ¤Ë¤·¤ÆÃÖ´¹
  print utf_preg_replace("/((?:\G|>)[^<]*?)($replace)/i", "\\1<b>\\2</b>", $string)."\n";

  function utf_preg_replace($pattern, $replacement, $subject, $limit=-1) {
      $pattern  = mb_convert_encoding($pattern, "UTF-8", "eucjp-win");
      $replacement = mb_convert_encoding($replacement, "UTF-8", "eucjp-win");
      $subject  = mb_convert_encoding($subject, "UTF-8", "eucjp-win");
      $subject  = preg_replace($pattern, $replacement, $subject, $limit);
      $subject  = mb_convert_encoding($subject, "eucjp-win", "UTF-8");
      return $subject;
  }
?>
¡Ú¼Â¹Ô·ë²Ì¡Û
¥ª¥ê¥¸¥Ê¥ë¤Îʸ»úÎ󡧤³¤ì¤Ï¹¥¤­¤Ê¥Æ¥¹¥È¤Ç¤¹¡£
preg_replace ¤Î¾ì¹çʸ»ú²½¤±¤¹¤ë¡§¤³¤ì¤Ï¹¥¤­¤Ê¥Æ¥¹¥È¤Ç¤¹¡£
utf_preg_replace ¤Î¾ì¹ç¡§¤³¤ì¤Ï¹¥¤­¤Ê¥Æ¥¹¥È¤Ç¤¹¡£