• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでHTMLを分解してMySQLに登録)

PHPでHTMLを分解してMySQLに登録

このQ&Aのポイント
  • PHPを使用してHTMLソースをパターン化し、MySQLに登録する方法について説明します。
  • HTMLソースを正規表現を使用して区切り、MySQLに登録する方法について解説します。
  • HTMLソースの<p>タグから次の<p>タグまでを取得し、それをMySQLに繰り返し登録する方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ida_rdt
  • ベストアンサー率75% (3/4)
回答No.2

まぁ、あまり深く考えずに hpmt28 さんの考える手順で実行してみてはいかがでしょうか。 仮に文字コードを「UTF-8」として考えたとして、文字列の書式にブレが無かったとすれば、 // 文字列 $source = ' <p> <div class="sample_title">サンプルタイトルA</div> <div class="item">サンプルアイテムA-1</div> <div class="item">サンプルアイテムA-2</div> <p> <div class="sample_title">サンプルタイトルB</div> <div class="item">サンプルアイテムB-1</div> <div class="item">サンプルアイテムB-2</div> '; // 正規表現 preg_match_all( '/(<p>\n<div.+?)<p>/su', $source, $match ); // SQLの組み立てと実行 foreach ( $match[ 1 ] as $var ) { // データのエスケープ $text = mysql_real_escape_string( $var ); // SQLの組み立てと実行 $SQL = "INSET INTO sample ( text ) VALUES ( '{$text}' )"; mysql_query( $SQL ); }

hpmt28
質問者

お礼

ida_rdtさん 丁寧にソースまで教えて頂きありがとうございます。 無事解決致しました。 正規表現は触りはじめたばかりなので「preg_match_all」を知りませんでした。 正規表現の便利さを体感することができ、自分でもすらすらと書けるように今後理解を深めたいと思います。 上記内容を参考にプログラムを組んで実行してみましたら、無事MySQLにデータを登録することができました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

pが閉じてないとなると、それはどんどん入れ子になっていっているということ 並列のpなのか入れ子のpなのかわからないのでこの定義だと判断つきません。 したがって命題がまちがっているので正しい正規表現はかけません

関連するQ&A