Проблема в следующем! Есть програмка которая выгруается в dbf файл все данные. В php мы его обрабатываем, переводим в xml формат и записываем в отдельный файл информацию. Проблема и вопрос заключается в следующем. В первой строке он пишет человека всю инфу про него, если у него есть еще не которые данные, то он пишет его во вторую строку, если нет то следующего человека. При выгрузке он выгружает как уже говорил в отдельные файлы. Надо чтоб если во второй строке человек == человеку в первой строке. чтоб записывал в предыдущий файл а не в новый. Как это зделать толком не пойму. Помогите!!!!!
ято понятно давно но как зделать например if ($fio1 == " ") { } else { тут идет обработка блока и дозапись в предыдущий файл }
PHP: <?php $msg = "То, что нужно"; $len = strlen($msg); $file = fopen("file.txt", "a+t"); flock($file,LOCK_EX); fwrite($file,$msg,$len); fclose($file); die(); ?>
стараюсь бъяснить более правильно. Так есть dbf. В пхп обрабатывает этот файд и переводит в xml формат вот частично код! PHP: <?php $db_path = "C:\fizkred.dbf"; $dbh = dbase_open($db_path,0) or die("Error! Could not open dbase database file '$db_path'."); $numrecords = dbase_numrecords($dbh); for ($i = 0; $i <= $numrecords; $i++) { $column = dbase_get_record ($dbh, $i); //Здесь мы перекодируем строчки $test = convert_cyr_string (trim($column[2]),'a','w'); ............. $blockp = convert_cyr_string (trim($column[58]),'a','w'); //Здесь мы записываем данные $id = trim($column[1]); $date = trim($column[14]); .................. $n = trim($column[60]); //Идет массив и запись $xml = array(); $xml[] = "<CERTID></CERTID><CRDATE></CRDATE><RDATE/><LIC></LIC><DOGCNT></DOGCNT>"; $xml[] = "<DOG id=\"\" num=\"$last_name5\" date=\"$date\"><DOG_START>$date</DOG_START><FACT_DATE></FACT_DATE>"; ........... $xml[] = "<PAY id=\"\" percent_date=\"$sumdate\" pay_date=\"$paydate \" of_garant=\"\" status=\"\" summa_plan=\"$summaplan\" summa_real=\"$summareal\"/>"; //ТУТ КАК РАЗ ИДЕТ ОБРАБОТКА БЛОКОВ if ($n == 1) { $xml[] = "<PROVIDE><R><GUAR_TYPE nm=\"$type\">$n</GUAR_TYPE>"; $xml[] = "<GUARANTEE><![CDATA[<?xml version=\"1.0\" encoding=\"WINDOWS-1251\" standalone=\"no\"?>"; ...................... $xml[] = "]]></GUARANTEE></R>"; $xml[] = "</PROVIDE><DOG_ADD/><SUD/></DOG><OINFO t=\"1\">"; } else { $xml[] = "<PROVIDE><R><GUAR_TYPE nm=\"$type\">$n</GUAR_TYPE><DOLSTART>$date</DOLSTART><DOLEND>$dogend</DOLEND>"; $xml[] = "<DOL>$enssum</DOL><CUR nm=\"$nn\">$cur</CUR><GUARANTEE>$n38</GUARANTEE>"; $xml[] = "</R></PROVIDE><DOG_ADD/><SUD/></DOG><OINFO t=\"1\">"; } $xml[] = "<DATA lastname=\"$last_name\" firstname=\"$last_name1\" patronymic=\"$last_name2\" bd=\"$bd\" inn=\"\" pens_no=\"\" place=\"$last_name3\" place_cd=\"\" is_biz=\"\" biz_cert=\"\" code=\"\" add_code=\"\"/>"; .................. $xml[] = "</OINFO><GOS/><EXTRA/><BANKROT/></R>"; //ТУТ ИДЕТ ЗАПИСЬ КАЖДОЙ СТРОЧКИ В ОТДЕЛЬНЫЙ ФАЙЛ $fp=fopen("$lastname_$i.xmc","w+"); for($j = 0; $j < count($xml); $j++) { fwrite($fp, $xml[$j]); fwrite($fp,"\r\n"); } fclose($fp); unset($xml); } ?> Какая проблема, если в базе выгружается в первой строчке FIO Fio1 .................. Name.......n38 во второй FIO Fio1(одинаковые) .................. Name1(различные).......n138(различные) например в следующих FIO Fio1 .................. Name.......n38 уже другой человек Надо чтобы вторая строчка записывалась в первый файл в который записана уже информация, но должна записаться Name1........n138 Если опять не понятно, то могу выложить dbf или отослать с php!!!!
Блин у как еще можно объяснить!!! Вы лучше спрашивайте. Может так лучше получиться. Очень надо это зделать!! HELP!!!!!!!!!!