парсер XML i CVS на PHP

Дмитро Синятинский

в определенное время, когда только начинал учить программирование, очень помог портал своими бесплатными уракамы и большим количеством открытых вебинаров. Вот теперь хочу внести свою каплю в море знаний и в поддержку портала - возможно кому-то будет нужно. Недавно пришлось писать парсер для XML и CVS и вот что получилось

public function pars($fileName)
{
$languages = simplexml_load_file($fileName); // $fileName = "xml.xml"
$arr = [];
foreach ($languages->stat as $stat) {
if($stat->advcampaign_id && $stat->order_id && $stat->status && $stat->cart && $stat->currency && $stat->action_date ){ // здесь условия создания нового обекта с данными
$order = new order();
// тут нужные мне поля - у вас будут свои
$order->advcampaign_id = $stat->advcampaign_id;
$order->order_id = $stat->order_id;
$order->status = $stat->status;
$order->cart = $stat->cart;
$order->currency = $stat->currency;
$order->action_date = $stat->action_date;
array_push($arr, $order); // на выходе получим массив обектов
}
}
return $arr;
}

 public function pars($fileName)    { // fileName = "cvs.cvs"
        $f = fopen($fileName, "rt") or die("ошибка!");
        for ($i=0; $data=fgetcsv($f,1000,";"); $i++) {
            $num = count($data);
            $arr = [];

            for ($c = 0; $c < $num; $c++) {
                $piecesString = explode("\t", $data[$c]); //розбивка строки по табам, можно ставить свои значения " " , ";" итд

                for ($k = 0; $k < count( $piecesString) ; $k++) {
                    if($piecesString[2] =="Winning Bid (Revenue) -" && $piecesString[18]  && $piecesString[15] && $piecesString[11] ) // здесь условия создания нового обекта з данными
                        $order = new order();
                        // тут нужные мне поля - у вас будут свои 
                                   $order->advcampaign_id = 1;  // поля по умолчанию 
                    $order->order_id = $piecesString[18]; // поля из розбитого масива
                    $order->status = "approved";
                    $order->cart = $piecesString[15];
                    $order->currency = "USD";
                    $order->action_date = $piecesString[11];
                    array_push($arr, $order);
                }
            }
        }
        fclose($f);

        return $arr;
    }

надеюсь будет полезно

2 чел.