$hoge1 = ”/[^=¥”](https?|ftp)(:¥/¥/[[:alnum:]¥+¥$¥;¥?¥.%,!#~*¥/:@&=_-]+)/ei”;

$hoge2 = ”’ <a href=¥”¥¥1¥¥2¥” title=¥”¥¥1¥¥2¥” target=¥”_blank¥”>¥¥1¥¥2</a>’”;
$hogehoge = preg_replace($hoge1, $hoge2, $pee);

 PHPの正規表現について質問です。html上のURLを自動的にリンクタグ付与させようと考えていて、上記コードを組み入れているんですが、どうしてもURL前に全角スペースがあると文字化けしてしまいます。うまい解決法は無いでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/02 16:48:35
  • 終了:--

回答(2件)

id:jouno No.1

jouno回答回数280ベストアンサー獲得回数02005/12/02 17:04:42

ポイント25pt

正規表現部分だけにかぎればperlでもphpと変わらないはずなのでこちらが参考になるのでは。全角スペースで文字化けするということは、正規表現で全角スペースの前半や後半のバイトが一致したりしてしまうということだと思うので、文字コードや、phpの文字コード関係の設定がマルチバイト対応になってないか、でしょう。

http://ns1.php.gr.jp/pipermail/php-users/2004-May/022283.html

[PHP-users 21761]Re: preg_replaceで文字化け

このへんなど関係で。

mb_ereg_replace

id:owlhp24h No.2

owlhp24h回答回数3ベストアンサー獲得回数02005/12/03 04:02:31

ポイント25pt

んと。

全角スペースをURLに記載した方法で正しくマッチさせて、除去させてみたら?


なんか訳解らないコメントだけど、

テスト文字列で、サーファーの一部分が文字化けしなければ成功、ってかw

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません