人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のように、英数字以外の文字列の次にスペースがある場合、そのスペースを削除するPHPプログラムを考えています。エディタ上の正規表現では問題ないものの、こうやってPHPのプログラムにして実行すると、文字化けしてしまいます(プログラムの文字エンコードはUTF-8です)

どのようにすれば、この問題が解決できるか教えてください。

<?php

$str = "二 一 教 育 の 目 標 と も に 健 康 な 国 民 の 育 成 を 期 し て 行 わ れ な け れ ば な ら な い も の と す る こ と 。 ( 第 一 条 関 係 ) 教 育 は 、 人 格 の 完 成 を 目 指 し 、 平 和 で 民 主 的 な 国 家 及 び 社 会 の 形 成 者 と し て 必 要 な 資 質 を 備 え た 心 身 1 幅 広 い 知 識 と 教 養 を 身 に 付 け 、 真 理 を 求 め る 態 度 を 養 い 、 豊 か な 情 操 と 道 徳 心 を 培 う と と も に 、 健 る も の と す る こ と 。 ( 第 二 条 関 係 ) 教 育 は 、 そ の 目 的 を 実 現 す る た め 、 学 問 の 自 由 を 尊 重 し つ つ 、 次 に 掲 げ る 目 標 を 達 成 す る よ う 行 わ れ";

$txt = preg_replace("/([^a-zA-Z0-9])\s+/", "\1", $str);

echo $txt;

?>

●質問者: leva
●カテゴリ:ウェブ制作
✍キーワード:echo PHP STR txt UTF-8
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● GoldenDawn
●60ポイント ベストアンサー

"\1" ではなく "$1"。ついでに utf8 指定子 u をパターンに付ける。

<?php
$str = "二 一 教 育 の 目 標 と も に 健 康 な 国 民 の 育 成 を 期 し て 行 わ れ な け れ ば な ら な い も の と す る こ と 。 ( 第 一 条 関 係 ) 教 育 は 、 人 格 の 完 成 を 目 指 し 、 平 和 で 民 主 的 な 国 家 及 び 社 会 の 形 成 者 と し て 必 要 な 資 質 を 備 え た 心 身 1 幅 広 い 知 識 と 教 養 を 身 に 付 け 、 真 理 を 求 め る 態 度 を 養 い 、 豊 か な 情 操 と 道 徳 心 を 培 う と と も に 、 健 る も の と す る こ と 。 ( 第 二 条 関 係 ) 教 育 は 、 そ の 目 的 を 実 現 す る た め 、 学 問 の 自 由 を 尊 重 し つ つ 、 次 に 掲 げ る 目 標 を 達 成 す る よ う 行 わ れ";

$txt = preg_replace("/([^a-zA-Z\d])\s+/u", "$1", $str);

echo $txt;
◎質問者からの返答

ありがとうございます。おかげさまで上手く変換できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ