2017-05-04 16 views
1

私は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行までのテーブルで完璧に動作するのは分かりますが、大きなものではないでしょうか?

ありがとうたくさんの男

答えて

2

この問題が見つかりました。私は含まれてsimplehtmldom.phpでMAX_FILE_SIZEを増やす必要があります - ごあいさつ

関連する問題