| |
|
|
| | есть file.csv и file. тхт в анси.
нужно открыть оба файла, преобразовать в массив первую строку file.csv
и первую строку file. тхт
если array[0]=>( ) файла csv равен array[3]=>( ) file.тхт, например, то записать в файл summa.txt сумму двух элементов массивов, если нет то перебирать строки file. тхт до конца файла.
если до конца файла не было совпадений, то загнать в массив вторую строку file.csv и повторить заново, и так до конца file.csv.
я новичек в PHP и для меня это напряг, два дня думаю и все никак, помогите плиз. | |
| |
|
|
| |
|
|
| |
для: CTAJIKEP
(17.07.2006 в 04:09)
| | | Сам то понял что написал? Яснее объясняй. И приложи формат файлов csv и txt. | |
| |
|
|
| |
|
|
| |
для: CTAJIKEP
(17.07.2006 в 04:09)
| | | Хм... текстовый файл был бы действительно очень кстати - какой у него формат? | |
| |
|
|
| |
|
|
| |
для: cheops
(17.07.2006 в 11:28)
| | | первая строка файла csv
1;12;7;13;0;75
первая строка файла тхт
id 1 param1 param2 param3 param4
нужно из первой строки csv файла взять единицу, найти ее в тхт файле, если нашли то сложить 7+param1, 13+param2, 0+param3, 75+param4 и записать в файл, если нет то перейти на вторую строку файла csv и тд до конца файла csv. | |
| |
|
|
| |
|
|
| |
для: CTAJIKEP
(17.07.2006 в 13:51)
| | |
<?
$csv=Array("1;12;7;13;0;75","2;22;27;23;20;25","3;32;37;33;30;35");
$txt=Array("id 1 param1 param2 param3 param4",
"id 2 param1 param2 param3 param4",
"id 3 param1 param2 param3 param4");
$free=0;
for($i=0;$i<count($txt);$i++){
$temp = explode(" ",$txt[$i]);
$d=$temp[1];
$_txt[$d]=$temp;
unset($_txt[$d][0],$_txt[$d][1],$temp,$d);
}
for($i=0;$i<count($csv);$i++){
$_csv[$i]=explode(";",$csv[$i]);
$index=array_search($_csv[$i][0],$_txt);
if($index===""){ continue; }
$result[$free][0] = $_csv[$i][2] + $_txt[$index][2];
$result[$free][1] = $_csv[$i][3] + $_txt[$index][3];
$result[$free][2] = $_csv[$i][4] + $_txt[$index][4];
$result[$free][3] = $_csv[$i][5] + $_txt[$index][5];
$free++;
}
print "<pre>";
print_r($result);
|
| |
| |
|
|
| |
|
|
| |
для: valenok
(17.07.2006 в 14:17)
| | | результат работы скрипта:
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 29
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 30
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 31
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 32
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 29
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 30
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 31
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 32
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 29
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 30
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 31
Notice: Undefined offset: 0 in C:\Program Files\PHP Expert Editor\phpAB.tmp on line 32
Array
(
[0] => Array
(
[0] => 7
[1] => 13
[2] => 0
[3] => 75
)
[1] => Array
(
[0] => 27
[1] => 23
[2] => 20
[3] => 25
)
[2] => Array
(
[0] => 37
[1] => 33
[2] => 30
[3] => 35
)
)
|
| |
| |
|
|
| |
|
|
| |
для: CTAJIKEP
(17.07.2006 в 17:06)
| | | Notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE
|
Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
?>
|
В качестве параметра, которой передать соответствующий уровень обработки ошибок. | |
| |
|
|
| |
|
|
| |
для: valenok
(17.07.2006 в 14:17)
| | | вот это не подходит
<?
$csv=Array("1;12;7;13;0;75","2;22;27;23;20;25","3;32;37;33;30;35");
$txt=Array("id 1 param1 param2 param3 param4",
"id 2 param1 param2 param3 param4",
"id 3 param1 param2 param3 param4");
?>
| нужно так
<?
$handle = fopen("c:\\inc\\file.csv", "r");
$csv = fgetcsv($handle, 10000, ";");
fclose($handle);
?>
| ибо файлы от 1 до 12 метров | |
| |
|
|