preg_mach_allのパターン文字列について - PHPプロ!Q&A掲示板

258

  • 0P

preg_mach_allのパターン文字列について

質問日時 / 2006年11月29日 22:20    回答数 / 3件

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

キーワード / パターン文字列    正規表現    preg   

こんにちは。

$htmlに
---------------
<td>aaaa
bbb
ccc

</td>
-----------------
という値が入っていた場合,preg_match_allでaaaabbbcccという値の取得したいの
ですがうまく取得できません。

<?php
$html;
preg_match_all("/<td>(.+?)a", $html, $result_list); 
?>
とすると$result_list[1]にaaaという値

<?php
$html;
preg_match_all("/<td>(.+?)
b/",html, $result_list); 
?>
とすると$result_list[1]にaaaという値

<?php
$html;
preg_match_all("/<td>(.+?) 
 b/",html, $result_list); 
?>
とすると値が取得できません。

パターン文字列で$html内の改行を含めた値を取得するには
どのようすればいいのかわかるかたいましたらご教授お願いいたします。

また、変数の中から,(コンマ)を削除する関数ってありますか?

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



ツリー一覧

┣A01wintermuteパターン修正子のmを使えば出来ると思います。 http:
┗A02hummerHTMLを扱うのであればDOMモジュールを使うのも一つの
 ┗A02-1hummer自分で関数作っといて名前間違えてる(笑) - var_du

回答一覧

並び替え:

A01
answererwintermute [11月30日 11:02]

パターン修正子のmを使えば出来ると思います。
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php

>変数の中から,(コンマ)を削除する関数ってありますか? 
いくつか方法はありますが、str_replace()を使うのが簡単かと思います。

この意見に回答する

ツリーへ TOPへ

A02
answererhummer [11月30日 18:35]

HTMLを扱うのであればDOMモジュールを使うのも一つの方法です。
ただしサーバによっては使えません。

参考→http://jp2.php.net/manual/ja/ref.domxml.php

  1. function get_innerHTML($html){
  2.     $d=domxml_open_mem($html); /* DOMオブジェクト作成 */
  3.     $root=$d->document_element(); /* ルートノード(この場合td)を取得 */
  4.     $f=$root->first_child(); /* td中の最初のノード(テキストノード)を取得 */
  5.     return $f->content; /* テキストノードの中身を返す */
  6. }

とかいう関数を作って

  1. $html=<<<EOF
  2. <td>aaaa
  3. bbb
  4. ccc
  5.  
  6. </td>
  7. EOF;
  8.  
  9. var_dump( parse_innerHTML($html) );

改行込みで返ります。

この意見に回答する

ツリーへ TOPへ

A02-1
replyerhummer [11月30日 18:36]

自分で関数作っといて名前間違えてる(笑)

var_dump( parse_innerHTML($html) );
var_dump( get_innerHTML($html) );

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

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

>>続きを読む

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

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