私はPHPスクリプトでHTMLテーブルをCSVに変換しようとしています。PHP - HTMLテーブルをCSVに変換すると〜700行で動作する
私はHTMLファイルがたくさんあるし、それらのそれぞれは、異なるファイルで
<table><th></th><tr><td></td></tr></table>
HTMLテーブルは300と2000行の間持っている非常にシンプルな構造でただ一つのテーブルが含まれています。私のPHPスクリプトは、CSVに秒間で約800行のすべてを変換し、すべてが動作します。しかし、他のもの(900行以上)は動作しません。私はいつも空のCSVファイルを "¿»¿"(Excelで開く)で取得します。
私はMAMPとPHPのエラーログにローカルスクリプトを実行するには、その非作業ファイル用に書かれています:
:全体の変換を行いconvertcsv.phpスクリプトの私の単一fucntionザッツ
PHP Fatal error: Uncaught Error: Call to a member function find() on boolean in /Applications/MAMP/htdocs/convertcsv.php:29
function convertToCSV($input,$output) {
$newFileContent = "";
file_put_contents($output, $newFileContent);
echo "File created (" . $output . ")";
$table = file_get_contents($input);
$html = str_get_html($table);
//Generate the CSV file header
header("Content-type: application/vnd.ms-excel");
header("Content-Encoding: UTF-8");
header("Content-type: text/csv; charset=UTF-8");
$fp = fopen($output, "w");
fwrite($fp,"\xEF\xBB\xBF");
foreach($html->find('tr') as $element) {
$td = [];
$kinder = $element->children();
foreach($kinder as $kind) {
$td[] = $kind->plaintext;
}
fputcsv($fp, $td, ';');
}
fclose($fp);
}
ライン29は、foreachのループです。
多分、スクリプトが〜800行までのテーブルで完璧に動作するのは分かりますが、大きなものではないでしょうか?
ありがとうたくさんの男