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

$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前に全角スペースがあると文字化けしてしまいます。うまい解決法は無いでしょうか?

●質問者: たにがわ、れ。
●カテゴリ:コンピュータ
✍キーワード:FTP HTML HTTPS PHP URL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● jouno
●25ポイント

http://www.din.or.jp/~ohzaki/perl.htm#AutoLink

Perlメモ

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

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

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

このへんなど関係で。

http://php.s3.to/man/function.mb-ereg-replace.html

mb_ereg_replace


2 ● owlhp24h
●25ポイント

http://www.din.or.jp/~ohzaki/perl.htm#JP_RmSpace

Perlメモ

んと。

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


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

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

関連質問


●質問をもっと探す●



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