Oara\Utilities::htmlToCsv PHP Method

htmlToCsv() public static method

public static htmlToCsv ( $html ) : array
$html
return array
    public static function htmlToCsv($html)
    {
        $html = str_replace(array("\t", "\r", "\n"), "", $html);
        $csv = "";
        $doc = new \DOMDocument();
        @$doc->loadHTML($html);
        $xpath = new \DOMXPath($doc);
        $results = $xpath->query('//tr');
        foreach ($results as $result) {
            $doc = new \DOMDocument();
            @$doc->loadHTML(\Oara\Utilities::DOMinnerHTML($result));
            $xpath = new \DOMXPath($doc);
            $resultsTd = $xpath->query('//td');
            $countTd = $resultsTd->length;
            $i = 0;
            foreach ($resultsTd as $resultTd) {
                $value = $resultTd->nodeValue;
                if ($i != $countTd - 1) {
                    $csv .= \trim($value) . ";";
                } else {
                    $csv .= \trim($value);
                }
                $i++;
            }
            $csv .= "\n";
        }
        $exportData = \str_getcsv($csv, "\n");
        return $exportData;
    }

Usage Example

 /**
  * @return array
  */
 public function getPaymentHistory()
 {
     $paymentHistory = array();
     $urls = array();
     $urls[] = new \Oara\Curl\Request("{$this->_extension}/affiliate_invoice.html?", array());
     $exportReport = $this->_client->get($urls);
     $doc = new \DOMDocument();
     @$doc->loadHTML($exportReport[0]);
     $xpath = new \DOMXPath($doc);
     $tableList = $xpath->query('//table[@class="bluetable"]');
     $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($tableList->item(0)));
     $num = \count($exportData);
     for ($i = 4; $i < $num; $i++) {
         $paymentExportArray = \str_getcsv($exportData[$i], ";");
         if (\count($paymentExportArray) > 7) {
             $obj = array();
             $date = \DateTime::createFromFormat("d/m/Y", $paymentExportArray[1]);
             $obj['date'] = $date->format("Y-m-d H:i:s");
             $obj['pid'] = \preg_replace('/[^0-9]/', "", $paymentExportArray[0]);
             $obj['method'] = 'BACS';
             $obj['value'] = \Oara\Utilities::parseDouble($paymentExportArray[4]);
             $paymentHistory[] = $obj;
         }
     }
     return $paymentHistory;
 }
All Usage Examples Of Oara\Utilities::htmlToCsv