<?php
$marks = file_get_contents('marks_models.txt');
$marks_models = explode("\n", $marks);
unset($marks_models[720]);
$b = array();
foreach ($marks_models as &$v)
{
$b[]= explode("\t", $v);
}
$rt=array();
for ($j = 0; $j < count($b); $j++)
{
$mrc=mb_convert_encoding($b[$j][6], 'UTF-8','Windows-1251');
if (!in_array($mrc, $rt)) $rt[]=$mrc;
}
$out = '<?xml version="1.0" encoding="UTF-8"?>
<kasko_alpha_cars>';
for ($j = 0; $j < count($b); $j++)
{
$mark = mb_convert_encoding($b[$j][2], 'UTF-8','Windows-1251');
$model = mb_convert_encoding($b[$j][3], 'UTF-8','Windows-1251');
$mrc = mb_convert_encoding($b[$j][6], 'UTF-8','Windows-1251');
$mrc = array_search($mrc, $rt) ;
$kvs = $b[$j][7];
$fifty = $b[$j][10];
$smart = $b[$j][11];
$out .= '
<car brand="$mark" model="$model" group="$mrc" fifty="$fifty" acc="$smart" pro="" kvs_group="$kvs"/>
';
}
$out .= '</kasko_alpha_cars>';
$file1 = file_get_contents('alpha_toparse_tarif.txt');
$tarif = explode("\n", $file1);
unset($tarif[308]);
$a = array();
foreach ($tarif as &$w)
$a= explode("\t", $w);
$ind=array() ;
for ($j = 0; $j < count($a); $j++)
{
$group[$j] = mb_convert_encoding($a[$j][0], 'UTF-8','Windows-1251');
$id = array_search($rt, $group) ;
}
$file = fopen("my_file.xml","w");
$write = fputs ( $file, $out);
$fclose = $file;
$fh = fopen('1.txt', "r");
$i = 0;
while (!feof($fh))
{
$line = fgets($fh, 4096);
$str[$i] = $line;
$i++;
}
fclose($fh);
foreach ($str as &$q)
$val = explode("\t", $q);
$val[0] = str_replace('р.', '', $val[0]);
$val[0] = str_replace(' ', '', $val[0]);
$max = count($val) - 2;
$xl = '<?xml version="1.0" encoding="UTF-8"?>
<kasko_alpha_tarif>';
$xl.= "\r\n";
for ($j=0; $j<$max; $j++)
{
$tu_str = $val[$j]+1;
$xl.= '<group id="'.$j.'" >';
$xl.= "\r\n";
for ($i = 0; $i < count($val[0]); $i++)
{
$xl .= '<value sum="'.$val[0][$i].'" tu="'.$tu_str[$i].'" th=""/>';
$xl .= "\r\n";
}
$xl.= '</group>';
$xl .= "\r\n";
}
$xl.= '</kasko_alpha_tarif>';
$file3 = fopen("my_file2.xml","w");
$write3 = fputs ( $file3, $xl);
$fclose = $file3;
?>
Спустя 2 минуты, 18 секунд (23.01.2011 - 13:42) d.i.frol написал(а):
все скобки на месте....
Спустя 2 минуты, 44 секунды (23.01.2011 - 13:45) alex12060 написал(а):
$out .=<<<HERE
<car brand="$mark" model="$model" group="$mrc" fifty="$fifty" acc="$smart" pro="" kvs_group="$kvs"/>
HERE;
Попов детектед? оО
Спустя 3 минуты, 1 секунда (23.01.2011 - 13:48) inpost написал(а):
d.i.frol
в 99% случаев это скобки, ты точно весь скрипт показал от начала до конца, или есть ещё другая часть? На первый взгляд ошибки в скобках нету, советую по частям вырезать, пока не дойдешь до того, что текст станет пустым. Так и выловишь ошибку. Сначала одно условие срезал, потом второе, потом третье, и так шаг за шагом!
в 99% случаев это скобки, ты точно весь скрипт показал от начала до конца, или есть ещё другая часть? На первый взгляд ошибки в скобках нету, советую по частям вырезать, пока не дойдешь до того, что текст станет пустым. Так и выловишь ошибку. Сначала одно условие срезал, потом второе, потом третье, и так шаг за шагом!
Спустя 1 минута, 13 секунд (23.01.2011 - 13:49) inpost написал(а):
alex12060
Это не Попов детектед, это правильное применение <<<HERE. Вот как раз в таких случаях, когда длинный текст и не хочется применять стили и нужно использовать конструкцию <<<HERE, то есть дописывать в переменную HTML-код!
Это не Попов детектед, это правильное применение <<<HERE. Вот как раз в таких случаях, когда длинный текст и не хочется применять стили и нужно использовать конструкцию <<<HERE, то есть дописывать в переменную HTML-код!
Спустя 2 минуты, 58 секунд (23.01.2011 - 13:52) d.i.frol написал(а):
и так делал, каждую часть кода удалял, может быть проблема в php.ini?
Спустя 40 секунд (23.01.2011 - 13:53) d.i.frol написал(а):
показал весь скрипт
Спустя 1 минута, 39 секунд (23.01.2011 - 13:54) alex12060 написал(а):
На 1 взгляд, все норма, но я посоветовал бы тебе проставить скобки, где у тебя идут foreach()
Спустя 39 секунд (23.01.2011 - 13:55) inpost написал(а):
Потратил 1 минуту, ошибка в этой строчке:
$xl .= '<value sum="'.$val[0][$i].'" tu="'.$tu_str[$i].'" th="''"/>';
Спустя 3 минуты, 34 секунды (23.01.2011 - 13:58) d.i.frol написал(а):
ошибка в том что th=ничего не присвоенно?
Спустя 3 минуты, 13 секунд (23.01.2011 - 14:02) inpost написал(а):
В том, что логические части необходимо разделять точками.
Поэтому либо так: th="" (то есть 1 логическая часть без разделения), либо так: th="'.'" - так как вывод первый убрал, второй вывод начинаешь уже с разделения точкой
Пример: echo 'A'.'B'.'C';
Поэтому либо так: th="" (то есть 1 логическая часть без разделения), либо так: th="'.'" - так как вывод первый убрал, второй вывод начинаешь уже с разделения точкой
Пример: echo 'A'.'B'.'C';
Спустя 3 минуты, 38 секунд (23.01.2011 - 14:05) d.i.frol написал(а):
не помогло даже если я удаляю весь этот цикл проблема остается, скажи а что должно стоять в error_reporting?
Спустя 1 минута, 51 секунда (23.01.2011 - 14:07) inpost написал(а):
d.i.frol
Ах да, я ещё <<<HERE убрал у себя, его тоже замени на обычный вид:
$a .= 'aa'.$.'bb'.$;
Ах да, я ещё <<<HERE убрал у себя, его тоже замени на обычный вид:
$a .= 'aa'.$.'bb'.$;
Спустя 47 секунд (23.01.2011 - 14:08) inpost написал(а):
Вверху есть твой код, его я подправил! Просто нажми редактировать тему, скопируй код и вставь к себе, теперь ошибки не должно быть!
Спустя 9 минут, 8 секунд (23.01.2011 - 14:17) d.i.frol написал(а):
я подправил, все заработало, спасибо огромное, очень помог)))
Спустя 49 минут, 1 секунда (23.01.2011 - 15:06) d.i.frol написал(а):
еще один вопрос по этому коду, помогите если не сложно
здесь переменная $tu_str[$i] это массив, который имеет следующий вид
[php[1]=>
array(84) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
[7]=>
string(0) ""
[8]=>
string(0) ""
[9]=>
string(0) ""
[10]=>
string(0) ""
[11]=>
string(0) ""
[12]=>
string(0) ""
[13]=>
string(0) ""
[14]=>
string(0) ""
[15]=>
string(0) ""
[16]=>
string(0) ""
[17]=>
string(6) "10,95%"
[18]=>
string(6) "10,45%"
[19]=>
string(6) "10,00%"
[20]=>
string(5) "9,60%"
[21]=>
string(5) "9,20%"
[22]=>
string(5) "8,85%"
[23]=>
string(5) "8,55%"
[24]=>
string(5) "8,25%"
[25]=>
string(5) "7,95%"
[26]=>
string(5) "7,70%"
[27]=>
string(5) "7,20%"
[28]=>
string(5) "6,80%"
[29]=>
string(5) "6,40%"
[30]=>
string(5) "6,05%"
[31]=>
string(5) "5,75%"
[32]=>
string(5) "5,50%"
[33]=>
string(5) "5,25%"
[34]=>
string(5) "5,00%"
[35]=>
string(5) "4,85%"
[36]=>
string(5) "4,75%"
[37]=>
string(5) "4,70%"
[38]=>
string(5) "4,60%"
[39]=>
string(5) "4,50%"
[40]=>
string(0) ""
[41]=>
string(0) ""
[42]=>
string(0) ""
[43]=>
string(0) ""
[44]=>
string(0) ""
[45]=>
string(0) ""
[46]=>
string(0) ""
[47]=>
string(0) ""
[48]=>
string(0) ""
[49]=>
string(0) ""
[50]=>
string(0) ""
[51]=>
string(0) ""
[52]=>
string(0) ""
[53]=>
string(0) ""
[54]=>
string(0) ""
[55]=>
string(0) ""
[56]=>
string(0) ""
[57]=>
string(0) ""
[58]=>
string(0) ""
[59]=>
string(0) ""
[60]=>
string(0) ""
[61]=>
string(0) ""
[62]=>
string(0) ""
[63]=>
string(0) ""
[64]=>
string(0) ""
[65]=>
string(0) ""
[66]=>
string(0) ""
[67]=>
string(0) ""
[68]=>
string(0) ""
[69]=>
string(0) ""
[70]=>
string(0) ""
[71]=>
string(0) ""
[72]=>
string(0) ""
[73]=>
string(0) ""
[74]=>
string(0) ""
[75]=>
string(0) ""
[76]=>
string(0) ""
[77]=>
string(0) ""
[78]=>
string(0) ""
[79]=>
string(0) ""
[80]=>
string(0) ""
[81]=>
string(0) ""
[82]=>
string(0) ""
[83]=>
string(2) "
][/php]
как мне задать условие чтобы все нулевые значения в начале массива заменялись на следующий ненулевой, а нулевые последние на последний ненулевой, может кто сталкивался?
for ($i = 0; $i < count($val[0]); $i++)
{
$xl .= '<value sum="'.$val[0][$i].'" tu="'.$tu_str[$i].'" th=""/>';
$xl .= "\r\n";
}
здесь переменная $tu_str[$i] это массив, который имеет следующий вид
[php[1]=>
array(84) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
[7]=>
string(0) ""
[8]=>
string(0) ""
[9]=>
string(0) ""
[10]=>
string(0) ""
[11]=>
string(0) ""
[12]=>
string(0) ""
[13]=>
string(0) ""
[14]=>
string(0) ""
[15]=>
string(0) ""
[16]=>
string(0) ""
[17]=>
string(6) "10,95%"
[18]=>
string(6) "10,45%"
[19]=>
string(6) "10,00%"
[20]=>
string(5) "9,60%"
[21]=>
string(5) "9,20%"
[22]=>
string(5) "8,85%"
[23]=>
string(5) "8,55%"
[24]=>
string(5) "8,25%"
[25]=>
string(5) "7,95%"
[26]=>
string(5) "7,70%"
[27]=>
string(5) "7,20%"
[28]=>
string(5) "6,80%"
[29]=>
string(5) "6,40%"
[30]=>
string(5) "6,05%"
[31]=>
string(5) "5,75%"
[32]=>
string(5) "5,50%"
[33]=>
string(5) "5,25%"
[34]=>
string(5) "5,00%"
[35]=>
string(5) "4,85%"
[36]=>
string(5) "4,75%"
[37]=>
string(5) "4,70%"
[38]=>
string(5) "4,60%"
[39]=>
string(5) "4,50%"
[40]=>
string(0) ""
[41]=>
string(0) ""
[42]=>
string(0) ""
[43]=>
string(0) ""
[44]=>
string(0) ""
[45]=>
string(0) ""
[46]=>
string(0) ""
[47]=>
string(0) ""
[48]=>
string(0) ""
[49]=>
string(0) ""
[50]=>
string(0) ""
[51]=>
string(0) ""
[52]=>
string(0) ""
[53]=>
string(0) ""
[54]=>
string(0) ""
[55]=>
string(0) ""
[56]=>
string(0) ""
[57]=>
string(0) ""
[58]=>
string(0) ""
[59]=>
string(0) ""
[60]=>
string(0) ""
[61]=>
string(0) ""
[62]=>
string(0) ""
[63]=>
string(0) ""
[64]=>
string(0) ""
[65]=>
string(0) ""
[66]=>
string(0) ""
[67]=>
string(0) ""
[68]=>
string(0) ""
[69]=>
string(0) ""
[70]=>
string(0) ""
[71]=>
string(0) ""
[72]=>
string(0) ""
[73]=>
string(0) ""
[74]=>
string(0) ""
[75]=>
string(0) ""
[76]=>
string(0) ""
[77]=>
string(0) ""
[78]=>
string(0) ""
[79]=>
string(0) ""
[80]=>
string(0) ""
[81]=>
string(0) ""
[82]=>
string(0) ""
[83]=>
string(2) "
][/php]
как мне задать условие чтобы все нулевые значения в начале массива заменялись на следующий ненулевой, а нулевые последние на последний ненулевой, может кто сталкивался?