dポイントプレゼントキャンペーン実施中!

mb_ereg("今日の<h1>(.*)</h1>です。",$a,$b)

で、<h1>~</h1>の間の文字をすべて抜き取りたいのですが、
抜き取ってくれません。

抜き取り先のHTMLはUTF-8で記述されていたので、

mb_internal_encodingでUTF-8に
phpにファイルもすべて、UTF-8で記述したのですが、
どうしても抜き取ってくれません。

正規表現に間違いがあるのでしょうか?

何かアドバイスいただけませんでしょうか?

A 回答 (4件)

#2>このようなエラー文がはきだされませんでしょうか?


でませんでした。

1.まず、以下のような単純なマッチングがうまくいくかテストしてみる。
<?php
$a="今日の<h1>タイトル</h1>です。";
if(mb_ereg("今日の<h1>(.*)</h1>です。",$a,$b)){
print $b[1];
}
?>
2.読込先のHTMLを読み込んで、単に表示してみる
などして、問題を切り分けるところからやってみてはどうでしょう
    • good
    • 0

>mb_internal_encodingでUTF-8に


>phpにファイルもすべて、UTF-8で記述したのですが、
ということなので、必要ないかもしれませんが
mb_regex_encoding("UTF-8");
も試してみてはどうでしょうか

参考URL:http://jp.php.net/manual/ja/function.mb-regex-en …
    • good
    • 0

正規表現自体は別に間違っていません。


こちらで試してみたところでは問題なく動作しました。

この回答への補足

Warning: mb_ereg(): mbregex compile err: premature end of regular expression in

このようなエラー分がはきだされませんでしょうか?

補足日時:2006/04/21 11:47
    • good
    • 0

eregi("<h1>*(.+)</h1>",$strData,$aryMatch);


これでどうでしょう。
$aryMatch[]にヒットした文字列が格納されます。
エンコーディングは直前でなんとかしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!