
luiggicc
New Members-
Posts
6 -
Joined
-
Last visited
luiggicc's Achievements

Newbie (1/5)
0
Reputation
-
Hello everyone, i have the next problem and i'm gonna explain with a practical example. I have a multidimensional array that returns me some values and 5 positions and i got a normal array that only has the position 0. What i want is concat those arrays and show on a table (Actually i got the code from the table, only need the concat part). --------------------------------------------------------------------------------------- | Column1 | Column2 | Column3 | Column4 | Column5 | | array(0) | array(0) | marray(0) | marray(0) | marray(0) | | array(0) | array(0) | marray(1) | marray(1) | marray(1) | | array(0) | array(0) | marray(2) | marray(2) | marray(2) | | array(0) | array(0) | marray(3) | marray(3) | marray(3) | | array(0) | array(0) | marray(4) | marray(4) | marray(4) | ---------------------------------------------------------------------------------------- The functions are these, for the multidimensional array: function fnc_processa_coarri($p_arquivo){ $segmento = fnc_obter_linha_segmento ($p_arquivo, "UNB"); $ini = strpos($p_arquivo,"EQD",0); $fim = strpos($p_arquivo,"NAD+CF",0); for( $i = 0; $i <= substr_count($p_arquivo, "EQD")-1; $i++ ) { $parte = substr($p_arquivo,$ini,$fim-$ini); if ($i == 0) { $a = ['Sender'=>[fnc_edi_recupera_compnte($segmento,2,0)], 'Recipient'=>[fnc_edi_recupera_compnte($segmento,3,0)], 'DateDoc'=>[fnc_edi_recupera_compnte($segmento,4,1)], 'TimeDoc'=>[fnc_edi_recupera_compnte($segmento,4,2)], 'IdSender'=>[fnc_edi_recupera_compnte($segmento,5,0)], 'Seq'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)], 'FunctionMsg'=>[fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))], 'PortLoad'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)], 'PortDischarge'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)], 'Operator'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)], 'Agent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)], 'EquipQualif'=>[fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))], 'EquipIdent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)], 'SizeType'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)], 'Category'=>[fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))], 'Status'=>[fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))], 'Booking'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)], 'BL'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)], 'OwnerCargo'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)], 'ExecutionDate'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)], 'PositionOnVessel'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)], 'FinalDest'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)], 'TareWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)], 'TareWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)], 'GrossWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)], 'GrossWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)], 'Seal'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)], 'TypeSeal'=>[fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))], 'IdealTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)], 'IdealTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)], 'MinTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)], 'MaxTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)], 'MinMaxTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)], 'OverDmsFrontLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)], 'OverDmsFrontWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)], 'OverDmsFrontHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)], 'OverDmsFrontUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)], 'OverDmsBackLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)], 'OverDmsBackWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)], 'OverDmsBackHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)], 'OverDmsBackUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)], 'OverDmsRightLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)], 'OverDmsRightWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)], 'OverDmsRightHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)], 'OverDmsRightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)], 'OverDmsLeftLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)], 'OverDmsLeftWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)], 'OverDmsLeftHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)], 'OverDmsLeftUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)], 'OverDmsGenLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)], 'OverDmsGenWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)], 'OverDmsGenHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)], 'OverDmsGenUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)], 'OverDmsExtLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)], 'OverDmsExtWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)], 'OverDmsExtHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)], 'OverDmsExtUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)], 'ModeTransp2'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))], 'TranspMeans2'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))], 'CarrierCode2'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)], 'Responsible'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)], 'Damage'=>[fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))], 'DamageCode'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)], ]; } else { array_push($a["Sender"], fnc_edi_recupera_compnte($segmento,2,0)); array_push($a["Recipient"], fnc_edi_recupera_compnte($segmento,3,0)); array_push($a["DateDoc"], fnc_edi_recupera_compnte($segmento,4,1)); array_push($a["TimeDoc"], fnc_edi_recupera_compnte($segmento,4,2)); array_push($a["IdSender"], fnc_edi_recupera_compnte($segmento,5,0)); array_push($a["Seq"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)); array_push($a["FunctionMsg"], fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))); array_push($a["PortLoad"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)); array_push($a["PortDischarge"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)); array_push($a["Operator"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)); array_push($a["Agent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)); array_push($a["EquipQualif"], fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))); array_push($a["EquipIdent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)); array_push($a["SizeType"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)); array_push($a["Category"], fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))); array_push($a["Status"], fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))); array_push($a["Booking"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)); array_push($a["BL"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)); array_push($a["OwnerCargo"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)); array_push($a["ExecutionDate"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)); array_push($a["PositionOnVessel"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)); array_push($a["FinalDest"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)); array_push($a["TareWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)); array_push($a["TareWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)); array_push($a["GrossWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)); array_push($a["GrossWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)); array_push($a["Seal"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)); array_push($a["TypeSeal"], fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))); array_push($a["IdealTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)); array_push($a["IdealTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)); array_push($a["MinTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)); array_push($a["MaxTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)); array_push($a["MinMaxTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)); array_push($a["OverDmsFrontLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)); array_push($a["OverDmsFrontWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)); array_push($a["OverDmsFrontHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)); array_push($a["OverDmsFrontUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)); array_push($a["OverDmsBackLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)); array_push($a["OverDmsBackWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)); array_push($a["OverDmsBackHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)); array_push($a["OverDmsBackUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)); array_push($a["OverDmsRightLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)); array_push($a["OverDmsRightWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)); array_push($a["OverDmsRightHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)); array_push($a["OverDmsRightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)); array_push($a["OverDmsLeftLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)); array_push($a["OverDmsLeftWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)); array_push($a["OverDmsLeftHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)); array_push($a["OverDmsLeftUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)); array_push($a["OverDmsGenLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)); array_push($a["OverDmsGenWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)); array_push($a["OverDmsGenHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)); array_push($a["OverDmsGenUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)); array_push($a["OverDmsExtLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)); array_push($a["OverDmsExtWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)); array_push($a["OverDmsExtHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)); array_push($a["OverDmsExtUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)); array_push($a["ModeTransp2"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))); array_push($a["TranspMeans2"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))); array_push($a["CarrierCode2"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)); array_push($a["Responsible"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)); array_push($a["Damage"], fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))); array_push($a["DamageCode"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)); } $ini = strpos($p_arquivo,"EQD",$fim); $fim = strpos($p_arquivo,"NAD+CF",$ini); } return $a; } And the function of the array: function fnc_processa_coarri_header($p_arquivo){ $segmento = fnc_obter_linha_segmento ($p_arquivo, "UNB"); $ini = strpos($p_arquivo,"UNH",0); $fim = strpos($p_arquivo,"UNT",0); for( $i = 0; $i <= substr_count($p_arquivo, "UNH")-1; $i++ ) { $parte = substr($p_arquivo,$ini,$fim-$ini); if ($i == 0) { $a= ['Move'=>[fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))], 'ModeTransp1'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))], 'TranspMeans1'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))], 'Voyage'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)], 'VesselName'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)], 'Arrival'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))], 'Departure'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))], 'Carrier'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)], 'CarrierCode1'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)], 'VesselId'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)], 'TypeId'=>[fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))], ]; } else { array_push($a["Move"], fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))); array_push($a["ModeTransp1"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))); array_push($a["TranspMeans1"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))); array_push($a["Voyage"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)); array_push($a["VesselName"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)); array_push($a["Arrival"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))); array_push($a["Departure"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))); array_push($a["Carrier"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)); array_push($a["CarrierCode1"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)); array_push($a["VesselId"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)); array_push($a["TypeId"], fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))); } $ini = strpos($p_arquivo,"UNH",$fim); $fim = strpos($p_arquivo,"UNT",$ini); $resultado = $a; } return $resultado; } And these part of my php code i call the functions and shows on a html table. if ($padrao == "COARRI" && $sendername == "TPG"){ $a = fnc_processa_coarri(trim($arquivo)); $b = fnc_processa_coarri_header(trim($arquivo)); $merg = array_merge($a, $b); var_dump($merg); prc_mostra_coarri($merg, $entry); //copy($path, $Uploaded.$entry); //unlink($path); } else { //copy($path, $Failed.$entry); //unlink($path); echo "<table><tr><td><strong>Archivo incorrecto</strong></td></tr></table>"; } I'm not totally a php guy, sorry for th elong code but i need some help with these. If my post need to be more exactly, comment plz.
-
Yeah, i know. i didn't paste all data from the .EDI because is too large. It has UNH and UNT, but only 1 in this case. And the function that i paste on my last post start by each UNH and UNT that has the file, but in my case, i got only as i said, 1 UNH and UNT and inside them has the information that i want to show it. Complete .EDI And complete process function function fnc_processa_coarri($p_arquivo) { $segmento = fnc_obter_linha_segmento ($p_arquivo, "UNB"); $ini = strpos($p_arquivo,"UNH",0); $fim = strpos($p_arquivo,"UNT",0); for( $i = 0; $i <= substr_count($p_arquivo, "UNH")-1; $i++ ) { $parte = substr($p_arquivo,$ini,$fim-$ini); if ($i == 0) { $a = ['Sender'=>[fnc_edi_recupera_compnte($segmento,2,0)], 'Recipient'=>[fnc_edi_recupera_compnte($segmento,3,0)], 'DateDoc'=>[fnc_edi_recupera_compnte($segmento,4,1)], 'TimeDoc'=>[fnc_edi_recupera_compnte($segmento,4,2)], 'IdSender'=>[fnc_edi_recupera_compnte($segmento,5,0)], 'Seq'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)], 'Move'=>[fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))], 'FunctionMsg'=>[fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))], 'Voyage'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)], 'ModeTransp1'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))], 'TranspMeans1'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))], 'CarrierCode1'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)], 'VesselId'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)], 'TypeId'=>[fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))], 'VesselName'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)], 'PortLoad'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)], 'PortDischarge'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)], 'Arrival'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))], 'Departure'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))], 'Operator'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)], 'Carrier'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)], 'Agent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)], 'EquipQualif'=>[fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))], 'EquipIdent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)], 'SizeType'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)], 'Category'=>[fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))], 'Status'=>[fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))], 'Booking'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)], 'BL'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)], 'OwnerCargo'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)], 'ExecutionDate'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)], 'PositionOnVessel'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)], 'FinalDest'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)], 'TareWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)], 'TareWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)], 'GrossWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)], 'GrossWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)], 'Seal'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)], 'TypeSeal'=>[fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))], 'IdealTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)], 'IdealTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)], 'MinTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)], 'MaxTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)], 'MinMaxTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)], 'OverDmsFrontLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)], 'OverDmsFrontWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)], 'OverDmsFrontHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)], 'OverDmsFrontUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)], 'OverDmsBackLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)], 'OverDmsBackWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)], 'OverDmsBackHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)], 'OverDmsBackUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)], 'OverDmsRightLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)], 'OverDmsRightWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)], 'OverDmsRightHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)], 'OverDmsRightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)], 'OverDmsLeftLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)], 'OverDmsLeftWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)], 'OverDmsLeftHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)], 'OverDmsLeftUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)], 'OverDmsGenLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)], 'OverDmsGenWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)], 'OverDmsGenHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)], 'OverDmsGenUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)], 'OverDmsExtLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)], 'OverDmsExtWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)], 'OverDmsExtHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)], 'OverDmsExtUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)], 'ModeTransp2'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))], 'TranspMeans2'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))], 'CarrierCode2'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)], 'Responsible'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)], 'Damage'=>[fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))], 'DamageCode'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)], ]; } else { array_push($a["Sender"], fnc_edi_recupera_compnte($segmento,2,0)); array_push($a["Recipient"], fnc_edi_recupera_compnte($segmento,3,0)); array_push($a["DateDoc"], fnc_edi_recupera_compnte($segmento,4,1)); array_push($a["TimeDoc"], fnc_edi_recupera_compnte($segmento,4,2)); array_push($a["IdSender"], fnc_edi_recupera_compnte($segmento,5,0)); array_push($a["Seq"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)); array_push($a["Move"], fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))); array_push($a["FunctionMsg"], fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))); array_push($a["Voyage"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)); array_push($a["ModeTransp1"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))); array_push($a["TranspMeans1"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))); array_push($a["CarrierCode1"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)); array_push($a["VesselId"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)); array_push($a["TypeId"], fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))); array_push($a["VesselName"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)); array_push($a["PortLoad"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)); array_push($a["PortDischarge"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)); array_push($a["Arrival"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))); array_push($a["Departure"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))); array_push($a["Operator"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)); array_push($a["Carrier"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)); array_push($a["Agent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)); array_push($a["EquipQualif"], fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))); array_push($a["EquipIdent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)); array_push($a["SizeType"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)); array_push($a["Category"], fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))); array_push($a["Status"], fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))); array_push($a["Booking"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)); array_push($a["BL"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)); array_push($a["OwnerCargo"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)); array_push($a["ExecutionDate"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)); array_push($a["PositionOnVessel"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)); array_push($a["FinalDest"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)); array_push($a["TareWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)); array_push($a["TareWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)); array_push($a["GrossWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)); array_push($a["GrossWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)); array_push($a["Seal"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)); array_push($a["TypeSeal"], fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))); array_push($a["IdealTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)); array_push($a["IdealTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)); array_push($a["MinTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)); array_push($a["MaxTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)); array_push($a["MinMaxTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)); array_push($a["OverDmsFrontLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)); array_push($a["OverDmsFrontWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)); array_push($a["OverDmsFrontHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)); array_push($a["OverDmsFrontUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)); array_push($a["OverDmsBackLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)); array_push($a["OverDmsBackWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)); array_push($a["OverDmsBackHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)); array_push($a["OverDmsBackUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)); array_push($a["OverDmsRightLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)); array_push($a["OverDmsRightWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)); array_push($a["OverDmsRightHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)); array_push($a["OverDmsRightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)); array_push($a["OverDmsLeftLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)); array_push($a["OverDmsLeftWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)); array_push($a["OverDmsLeftHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)); array_push($a["OverDmsLeftUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)); array_push($a["OverDmsGenLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)); array_push($a["OverDmsGenWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)); array_push($a["OverDmsGenHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)); array_push($a["OverDmsGenUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)); array_push($a["OverDmsExtLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)); array_push($a["OverDmsExtWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)); array_push($a["OverDmsExtHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)); array_push($a["OverDmsExtUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)); array_push($a["ModeTransp2"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))); array_push($a["TranspMeans2"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))); array_push($a["CarrierCode2"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)); array_push($a["Responsible"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)); array_push($a["Damage"], fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))); array_push($a["DamageCode"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)); } $ini = strpos($p_arquivo,"UNH",$fim); $fim = strpos($p_arquivo,"UNT",$ini); } return $a; } The logic would be that must repeat by each "EQD" that is found on the EDI file. UNH and UNT is the start and end of every data block that has container information.
-
I just did that but there's a problem. It is still getting only the first position. When i do this: $arquivo = file_get_contents($_FILES['ufile']['name']); echo "<pre>"; echo $arquivo; echo "</pre>"; It shows all the data of my .EDI File. But when i do a Print_r on the function that is stored on a variable only returns the first position. if ($padrao == "COARRI"){ $a = fnc_processa_coarri(trim($arquivo)); echo "<pre>"; print_r($a); echo "</pre>"; prc_mostra_coarri($a); } Like this: The function that process the data is this: function fnc_processa_coarri($p_arquivo) { $segmento = fnc_obter_linha_segmento ($p_arquivo, "UNB"); $ini = strpos($p_arquivo,"UNH",0); $fim = strpos($p_arquivo,"UNT",0); for( $i = 0; $i <= substr_count($p_arquivo, "UNH")-1; $i++ ) { $parte = substr($p_arquivo,$ini,$fim-$ini); if ($i == 0) { $a = ['Sender'=>[fnc_edi_recupera_compnte($segmento,2,0)], 'Recipient'=>[fnc_edi_recupera_compnte($segmento,3,0)], 'DateDoc'=>[fnc_edi_recupera_compnte($segmento,4,1)], 'TimeDoc'=>[fnc_edi_recupera_compnte($segmento,4,2)], 'IdSender'=>[fnc_edi_recupera_compnte($segmento,5,0)], 'Seq'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)], 'Move'=>[fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))], 'FunctionMsg'=>[fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))], 'Voyage'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)], 'ModeTransp1'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))], 'TranspMeans1'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))], 'CarrierCode1'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)], 'VesselId'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)], 'TypeId'=>[fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))], 'VesselName'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)], 'PortLoad'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)], 'PortDischarge'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)], 'Arrival'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))], 'Departure'=>[fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))], 'Operator'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)], 'Carrier'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)], 'Agent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)], 'EquipQualif'=>[fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))], 'EquipIdent'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)], 'SizeType'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)], 'Category'=>[fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))], 'Status'=>[fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))], 'Booking'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)], 'BL'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)], 'OwnerCargo'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)], 'ExecutionDate'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)], 'PositionOnVessel'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)], 'FinalDest'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)], 'TareWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)], 'TareWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)], 'GrossWeight'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)], 'GrossWeightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)], 'Seal'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)], 'TypeSeal'=>[fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))], 'IdealTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)], 'IdealTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)], 'MinTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)], 'MaxTemp'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)], 'MinMaxTempUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)], 'OverDmsFrontLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)], 'OverDmsFrontWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)], 'OverDmsFrontHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)], 'OverDmsFrontUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)], 'OverDmsBackLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)], 'OverDmsBackWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)], 'OverDmsBackHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)], 'OverDmsBackUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)], 'OverDmsRightLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)], 'OverDmsRightWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)], 'OverDmsRightHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)], 'OverDmsRightUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)], 'OverDmsLeftLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)], 'OverDmsLeftWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)], 'OverDmsLeftHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)], 'OverDmsLeftUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)], 'OverDmsGenLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)], 'OverDmsGenWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)], 'OverDmsGenHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)], 'OverDmsGenUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)], 'OverDmsExtLen'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)], 'OverDmsExtWid'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)], 'OverDmsExtHei'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)], 'OverDmsExtUnit'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)], 'ModeTransp2'=>[fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))], 'TranspMeans2'=>[fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))], 'CarrierCode2'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)], 'Responsible'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)], 'Damage'=>[fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))], 'DamageCode'=>[fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)], ]; } else { array_push($a["Sender"], fnc_edi_recupera_compnte($segmento,2,0)); array_push($a["Recipient"], fnc_edi_recupera_compnte($segmento,3,0)); array_push($a["DateDoc"], fnc_edi_recupera_compnte($segmento,4,1)); array_push($a["TimeDoc"], fnc_edi_recupera_compnte($segmento,4,2)); array_push($a["IdSender"], fnc_edi_recupera_compnte($segmento,5,0)); array_push($a["Seq"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),2,0)); array_push($a["Move"], fnc_resgata_tipo_movimento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),1,0))); array_push($a["FunctionMsg"], fnc_resgata_funcao_mensagem(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "BGM"),3,0))); array_push($a["Voyage"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),2,0)); array_push($a["ModeTransp1"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),3,0))); array_push($a["TranspMeans1"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),4,0))); array_push($a["CarrierCode1"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),5,1)); array_push($a["VesselId"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,1)); array_push($a["TypeId"], fnc_resgata_tipo_id_navio(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,2))); array_push($a["VesselName"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT"),8,4)); array_push($a["PortLoad"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+9",5),2,1)); array_push($a["PortDischarge"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+11",6),2,1)); array_push($a["Arrival"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+132",7),1,2))); array_push($a["Departure"], fnc_formata_data(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+133",7),1,2))); array_push($a["Operator"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CF",6),2,0)); array_push($a["Carrier"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+CA",6),2,0)); array_push($a["Agent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "NAD+AG",6),2,0)); array_push($a["EquipQualif"], fnc_resgata_qualif_equipamento(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),1,0))); array_push($a["EquipIdent"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),2,0)); array_push($a["SizeType"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),3,1)); array_push($a["Category"], fnc_resgata_categoria(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),5,0))); array_push($a["Status"], fnc_resgata_status(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "EQD"),6,0))); array_push($a["Booking"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BN",6),1,2)); array_push($a["BL"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+BM",6),1,2)); array_push($a["OwnerCargo"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RFF+AAE",7),1,2)); array_push($a["ExecutionDate"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DTM+203",7),1,2)); array_push($a["PositionOnVessel"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+147",7),2,1)); array_push($a["FinalDest"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "LOC+7",5),2,1)); array_push($a["TareWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,2)); array_push($a["TareWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+T",9),3,1)); array_push($a["GrossWeight"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,2)); array_push($a["GrossWeightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "MEA+AAE+G",9),3,1)); array_push($a["Seal"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),1,0)); array_push($a["TypeSeal"], fnc_resgata_tipo_lacre(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "SEL"),2,0))); array_push($a["IdealTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,1)); array_push($a["IdealTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TMP"),2,2)); array_push($a["MinTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,2)); array_push($a["MaxTemp"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,3)); array_push($a["MinMaxTempUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "RNG"),2,1)); array_push($a["OverDmsFrontLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,2)); array_push($a["OverDmsFrontWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,3)); array_push($a["OverDmsFrontHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,4)); array_push($a["OverDmsFrontUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+5",5),2,1)); array_push($a["OverDmsBackLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,2)); array_push($a["OverDmsBackWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,3)); array_push($a["OverDmsBackHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,4)); array_push($a["OverDmsBackUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+6",5),2,1)); array_push($a["OverDmsRightLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,2)); array_push($a["OverDmsRightWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,3)); array_push($a["OverDmsRightHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,4)); array_push($a["OverDmsRightUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+7",5),2,1)); array_push($a["OverDmsLeftLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,2)); array_push($a["OverDmsLeftWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,3)); array_push($a["OverDmsLeftHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,4)); array_push($a["OverDmsLeftUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+8",5),2,1)); array_push($a["OverDmsGenLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,2)); array_push($a["OverDmsGenWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,3)); array_push($a["OverDmsGenHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,4)); array_push($a["OverDmsGenUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+9",5),2,1)); array_push($a["OverDmsExtLen"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,2)); array_push($a["OverDmsExtWid"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,3)); array_push($a["OverDmsExtHei"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,4)); array_push($a["OverDmsExtUnit"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DIM+10",6),2,1)); array_push($a["ModeTransp2"], fnc_resgata_modo_transp(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),3,0))); array_push($a["TranspMeans2"], fnc_resgata_transp_means(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),4,0))); array_push($a["CarrierCode2"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,1)); array_push($a["Responsible"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "TDT+1",5),8,4)); array_push($a["Damage"], fnc_determina_dano(fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),1,0))); array_push($a["DamageCode"], fnc_edi_recupera_compnte(fnc_obter_linha_segmento ($parte, "DAM"),5,0)); } $ini = strpos($p_arquivo,"UNH",$fim); $fim = strpos($p_arquivo,"UNT",$ini); } return $a; }
-
Yes, it is a string. I was trying with file_get_contents, i can see all the data as i want, the good part. The bad part is that send me error on the "while". Lines 890 and 891 are: while (!feof ($ponteiro)) { $arquivo = $arquivo.fgets($ponteiro); }
-
Because if a do a var_dump in this function, shows me what is inside the array. if ($padrao == "COARRI"){ $a = fnc_processa_coarri(trim($arquivo)); var_dump($a); prc_mostra_coarri($a); } I will explain a little bit more with EDI data. This is the data on a .EDI file. On the second line start with UNH, this is like the header of the data and the rest is the body that has information about containers (Maritime industry). The function must read line by line, but only reads the first container data and not all. I tried so many things, i know the part i must re-code is this, i guess: $ponteiro = fopen ($_FILES['ufile']['name'],"r"); $arquivo = ''; while (!feof ($ponteiro)) { $arquivo = $arquivo.fgets($ponteiro); } Because in this part i manage and read the data of the file, i don't have an idea on how to read properly all data instead of the first position (cero)
-
Hello everyone, i got this problem. I have to read .EDI file, it was hard but i already did it but i found a little problem. EDI file structure is complex, so my php function read all the data structure and save on an array and that array pass the values to others function to insert data on a html table. The problem is when i read my file, it only reads the first line, i know there's so many documentation, but in this case is little bit different because the fact is reading files with extension ".edi". My function to read the file is this. if(isset($_FILES['ufile']['name'])){ if ($_POST['teste'] == "S"){ echo "<table><tr><td><strong>File: ".$_FILES['ufile']['name']."</strong></td></tr></table><br>"; } $tmpName = $_FILES['ufile']['tmp_name']; $newName = "" . $_FILES['ufile']['name']; if(!is_uploaded_file($tmpName) || !move_uploaded_file($tmpName, $newName)){ echo "<table><tr><td><strong>Failed to read file ".$_FILES['ufile']['name']."</strong></td></tr></table>"; } else { echo "<br>"; //coloca o conteudo do arquivo para a variavel $arquivo $ponteiro = fopen ($_FILES['ufile']['name'],"r"); $arquivo = ''; while (!feof ($ponteiro)) { $arquivo = $arquivo.fgets($ponteiro); } fclose ($ponteiro); if (unlink($_FILES['ufile']['name']) != 1) echo "Erro ao deletar arquivo!"; $padrao = fnc_resgata_padrao($arquivo); if ($padrao == "COARRI"){ $a = fnc_processa_coarri(trim($arquivo)); prc_mostra_coarri($a); } elseif ($padrao == "CODECO") { $a = fnc_processa_codeco(trim($arquivo)); echo $a; prc_mostra_codeco($a); } else { echo "<table><tr><td><strong>Invalid file</strong></td></tr></table>"; } } } else { echo "You need to select a file. Please try again."; } Any suggestion? This .edi files are getting my crazy.