作成済みのHTMLテーブルデータをJSONフォーマットに変換する方法をまとめました。
ここでは下記プログラムを使用しています。
https://github.com/tremblay/HTML-Table-to-JSON/blob/master/README.md
※目次をクリックすると目次の下部にコンテンツが表示されます。
2)HTMLTable2JSON.phpのソースを変更
①不要なログが出力されないようにコメントにしました。
// Check return status $status = curl_getinfo($c, CURLINFO_HTTP_CODE); if (200 <= $status && 300 > $status) //echo 'Got the html from '.$url.'<br />'; ; else die('Failed to get html from '.$url.'<br />'); curl_close($c);
②テーブルIDの判定部分の記述が誤っているようなので下記のように変更しました。
// Pull table out of HTML
//if (strcmp(”, $tableID))
if (strcmp(”, $tableID) == 0)
3)関数の書式とオプション
tableToJSON(
$url,
$firstColIsRowName = TRUE,
$tableID =”,
$ignoreCols = NULL,
$headers = NULL,
$firstRowIsData = FALSE,
$onlyColumns = FALSE,
$arrangeByRow = FALSE,
$ignoreHidden = FALSE,
$printJSON = TRUE,
$testingTable = NULL
)
・デフォルトでは、HTMLテーブルの一番目のカラムをタイトルとして扱っています。
JSONデータが複雑になっていたのでFALSEに変更しました。
$firstColIsRowName = FALSE
・デフォルトでは、セルを一つのオブジェクトとして扱っています。
HTMLの各行を配列の1要素、行内の各セルはその配列要素の中のハッシュの値とする場合は下記のように変更します。
$arrangeByRow = TRUE
(外部HTMLファイル、sample-table.html)
<table id=”サンプル1” border=1>
<caption>サンプルテーブル</caption>
<tr><th>サイズ</th><th>商品A</th><th>商品B</th></tr>
<tr><td>10~15<br>(m2)</td><td>4512<br>(30)</td><td>4428<br>(53)</td></tr>
<tr><td>15~20<br>(m2)</td><td>3994<br>(439)</td><td>3803<br>(309)</td></tr>
<tr><td>20~25<br>(m2)</td><td>3616<br>(278)</td><td>3414<br>(198)</td></tr>
<tr><td>25~30<br>(m2)</td><td>3228<br>(103)</td><td>3021<br>(136)</td></tr>
<tr><td>30~35<br>(m2)</td><td>3309<br>(60)</td><td>3045<br>(90)</td></tr>
</table>
(作成したPHPスクリプト)
<?php
include_once ‘src/HTMLTable2JSON.php’;
$helper = new HTMLTable2JSON();
echo $helper->tableToJSON(‘http://localhost/html/sample-table.html’,FALSE,”,NULL,NULL,FALSE,FALSE,TRUE,FALSE,FALSE,NULL);
?>
(変換して生成されるデータ)
[{“サイズ”:”10~15(m2)”, “商品A”:”4512(30)”, “商品B”:”4428(53)”},
{“サイズ”:”15~20(m2)”, “商品A”:”3994(439)”, “商品B”:”3803(309)”},
{“サイズ”:”20~25(m2)”, “商品A”:”3616(278)”, “商品B”:”3414(198)”},
{“サイズ”:”25~30(m2)”, “商品A”:”3228(103)”, “商品B”:”3021(136)”},
{“サイズ”:”30~35(m2)”, “商品A”:”3309(60)”, “商品B”:”3045(90)”}]
2)外部HTMLファイル内に二つのテーブルがある場合
下記のようにファイル内に二つのテーブルがある場合は、<table>タグのidで指定した文字列をtableToJSON関数の$tableIDの引数に指定するとそのテーブルのデータを変換して出力できます。
指定しないと最初のテーブルが出力されます。
<table id=”サンプル1” border=1>
<caption>サンプルテーブル</caption>
<tr><th>サイズ</th><th>商品A</th><th>商品B</th></tr>
:
</table>
<table id=”サンプル2” border=1>
<caption>サンプルテーブル</caption>
<tr><th>サイズ</th><th>商品C</th><th>商品D</th></tr>
:
</table>
(作成したPHPスクリプト)
<?php
include_once ‘src/HTMLTable2JSON.php’;
$helper = new HTMLTable2JSON();
echo $helper->tableToJSON(‘http://localhost/html/sample-table.html’,FALSE,’サンプル2’,NULL,NULL,FALSE,FALSE,TRUE,FALSE,FALSE,NULL);
?>
-
インストール、設定
- PHPの設定、更新時の参考情報メモ
- PHPのインストール
- CentOS6でPHP5.3からPHP7.1へアップデート
- CentOS6.10でPHP7.1からPHP7.2へアップデート
- CentOS Stream9でPHP7.4をインストールする手順
- CentOSでPHPのマルチバイト文字列(MBstring)関数を使えるようにする
- PHPでタイムスタンプをログファイルに記録
- PHPのバージョンが表示されないようにする
- セキュリティを考慮した/etc/php.iniの設定
- CentOS6でAPC(Alternative PHP Cache)をインストール、チューニング
- PHPスクリプトで出力データを圧縮する方法
- PHPの変数、スコープ
- PHPの型の概要、種類
- PHPのクラス操作の概要
- PHPの配列操作の概要
- PHPで文字列のマッチング
- require,require_once,include,include_onceの違い
- CentOS環境のPHPでPDOを使ってMySQLからJSONでデータ取得
- PHPでHTMLテーブルをJSONに変換
- PHPでディレクトリ内のファイル一覧をJSONで出力
- PDOを使ってテーブルに保存
- PDOでSQLインジェクション対策
- phpとpChartを使ってWebサイトにグラフ表示
性能
プログラミングの基本
PDO、データベース、JSON
その他