<title>\.*+</title> 正規表現の方法 - PHPプロ!Q&A掲示板

357

  • 300P

<title>\.*+</title> 正規表現の方法

質問日時 / 2007年2月11日 02:53 (最終編集:2月12日 14:43)    回答数 / 2件

Questioner:  yumisaiki  このエントリーをはてなブックマークに追加 

キーワード / 正規表現    RESS   

 http://www.phppro.jp/qa/283
 で教えていただいたものをバージョンアップしたいのですが、
 いかんせん正規表現がわかりません。

 <title>なんでもあり</title>  を正規表現で表現するにはどうしたらいいですか?

 $pattern2 ='/<title\>(*.)\\<\/title>/';  とか 見よう見真似で書いてもうまく出ません。
 
 よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01bontaro対象文字列がマルチバイト(日本語など)の場合、通常の
┣A02dala00この意見は投稿者によって削除されました。
┗A03yumisaiki結局 こうなりました。 >>CODE   <?php // RSS
 ┗A03-1QWWER741この意見は管理者によって削除されました。

回答一覧

並び替え:

A01 参考になった
answererbontaro [2月11日 07:29] (最終編集:2月11日 07:46)

対象文字列がマルチバイト(日本語など)の場合、通常の操作では処理できません。
文字コードがUTF-8の場合、下記コードで $regs に文字列が格納されます。

  1. preg_match("/<title>(\w+)<\/title>/", "<title>タイトル</title>", $regs);

文字コードがUTF-8以外の場合、mb_ereg_match 関数を使用すると良いようです。

http://jp.php.net/manual/ja/function.mb-ereg-match.php

この意見に回答する

ツリーへ TOPへ

A02
answererdala00 [2月11日 15:22] (最終編集:2月11日 15:23)

この意見は投稿者によって削除されました。

ツリーへ TOPへ

A03
answereryumisaiki [2月12日 15:42]

結局 こうなりました。
  1.   <?php
  2.  // RSSを取得する
  3. $content = file_get_contents("http://blog.wgpw.jp/index.rdf");
  4.  
  5. // 正規表現を用いてimgタグを抜き出す
  6.  $pattern = '/<img[\s\t]+src[\s\t]*=[\s\t]*"images\/(moblog_\d+\.jpg)"[^\/>]*?\/?>/';
  7.  $pattern2 ='/<title>(.*)<\/title>/'
  8.  $res = preg_match_all($pattern$content$matches);
  9.  $res1 = preg_match_all($pattern2$content$matches1);
  10.  
  11.  
  12.  if ($res) {
  13.      $tag_list  = $matches[0];
  14.     $name_list = $matches[1];
  15. } else {
  16.     $tag_list  = array();
  17.      $name_list = array();
  18.  }
  19.   if ($res1) {
  20.      $tag_list1  = $matches1[0];
  21.      $name_list1 = $matches1[1];
  22. } else {
  23.     $tag_list1  = array();
  24.     $name_list1 = array();
  25.  }
  26. mb_convert_encoding($name_list1"utf-8");
  27.  
  28. print "$name_list1[2].<br>"
  29.  print "<a target=\"_parent\" href=\"http://blog.wgpw.jp\"><img border=\"0\" src=\"";
  30.        print "http://blog.wgpw.jp/images/"($name_list[1]) ;
  31.        print "\"alt=\"$name_list1[2]\" width=\"185\" height=\"247\"></a>";
  32.    
  33.  ?>

 これで http://www.wgpw.jp/ に自動的にブログの写真とタイトルが表示できるようになりました。
 上のコードだけだと写真とタイトル1つづつしか表示されませんが、
 レイアウト的にどうしたらいいかわからないので、2つ PHPを作りました。
 それでも結局、モジバケしてしまうので include でHTMLファイルに書き出しutf-8を指定して開くものを作り、それをindex.php に ifream で読込むようにしました。

 そうしないと複数のPHPの貼り付けがうまくいかないのです。

 このモジバケについては、新しくスレッドを作ってお尋ねしたいと思います。

この意見に回答する

ツリーへ TOPへ

A03-1
replyerQWWER741 [2月22日 14:42]

この意見は管理者によって削除されました。

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)