Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Денег 600+ рублей, оплата по этапам. YM, WM

Бонус: Сможете использовать партнерку Озона где-нибудь у себя получаю процент с продаж.

Реализовать на: PHP.

Скачать xml тут:

http://www.ozon.ru/multimedia/yml/partner/div_dvd.xml

Пример: c id="4412676"

http://www.ozon.ru/context/detail/id/4412676/?from=partner

210

RUR

10059

10388

1075240

http://www.ozon.ru/multimedia/video_dvd_covers/1001087350.jpg

true

На складе

Дениз Остин: Быстрая потеря веса

2006

DVD

Дениз Остин

Кэл Позо

Denise Austin: Burn Fat Fast

США

Программа..

На выходе массив:

[4412676]

=http://www.ozon.ru/context/detail/id/4412676/?from=partner

[categoryId_1]= 10059

[categoryId_2]= 10388

[categoryId_3]= 1075240

[orderingTime]

[ordering]= На складе

Итак далее все значения какие будут.

[description]= Программа..

[Следующий ID]

Где название ключей одинаковые, будет:

[4412676] [categoryId_1]= 10059

[4412676] [categoryId_2]= 10388

[4412676] [categoryId_3]= 1075240

И ВАЖНО вытащить из того же xml [categories] названия категорий:

Для нашего примера:

[4412676] [categoryId_1]= Аэробика. Фитнес

[4412676] [categoryId_2]= Обучающие видеопрограммы

[4412676] [categoryId_3]= Красота и здоровье

Отзыв и оплату гарантирую!

Моя старая версия для разбора xml

Можно как доработать так и сделать свою.

$xml_name ='products.xml';

$xml_sp = simplexml_load_file($xml_name);

$i=0;

foreach ($xml_sp->Product as $xml_sp_title => $xml_sp_value)/* if ($i

$xml_sp_value = (array)$xml_sp_value;

//is_object

foreach ($xml_sp_value as $xml_sp_value_title => $xml_sp_value_value){

if ($xml_sp_value_title=='Link'){

$xml_sp_value_value = trim(urldecode($xml_sp_value_value));

}

if (!$xml_sp_value_value instanceof SimpleXMLElement) {

$xml_sp_value_value= iconv('UTF-8','Windows-1251', $xml_sp_value_value);

}

if (!$xml_sp_value_value instanceof SimpleXMLElement) {

$out_array[$i][$xml_sp_value_title]=$xml_sp_value_value;

}

if ($xml_sp_value_value instanceof SimpleXMLElement){

$xml_sp_value_value_tmp = get_object_vars($xml_sp_value_value);

$count=0;

foreach ($xml_sp_value_value_tmp as $xml_sp_value_value_value){

foreach ($xml_sp_value_value_value as $xml_sp_value_value_value_title => $xml_sp_value_value_value_value){

if ($xml_sp_value_value_value_value!=''){//$out_array

$xml_sp_value_value_value_value = iconv('UTF-8','Windows-1251', $xml_sp_value_value_value_value);

$out_array[$i][$xml_sp_value_title.'-'.$xml_sp_value_value_value_title]=trim($xml_sp_value_value_value_value);

}

if ($xml_sp_value_value_value_value instanceof SimpleXMLElement) {

$in = get_object_vars($xml_sp_value_value_value_value);

foreach ($in as $in_title => $in_value){

$in_value = iconv('UTF-8','Windows-1251', $in_value);

$out_array[$i][$xml_sp_value_title.'-'.$in_title][]=trim($in_value);

}

}

}

}

}

}

if (isset($out_array[$i]['Title'])){

echo '#$out_array[$i]["Title"]: '.$out_array[$i]["Title"]."\r\n";

$out_array[$i]['Title_orig']=$out_array[$i]['Title'];

$out_array[$i]['Title']=translit($out_array[$i]['Title']);

echo '#$out_array[$i]["Title_orig"]: '.$out_array[$i]["Title_orig"]."\r\n";

echo '#$out_array[$i]["Title"]: '.$out_array[$i]["Title"]."\r\n";

}

if (count($out_array[$i])>$save_out_array){

$save_out_array= count($out_array[$i]);

}

$i++;

}

15 лет назад
ev9eniy
40 летРоссия
15 лет в сервисе
Был
7 лет назад
Выбранный исполнитель
crazydd
NaN лет
15 лет в сервисе
Был
15 лет назад
15 лет назад
$17
1 день
[07.04.2009 22:14:35] ev9niy: Parser для Ozon.ru [07.04.2009 22:14:41] *** Call to andrew.boltachev, no answer. *** [07.04.2009 22:15:02] ev9niy: Вечера, по поводу парсера [07.04.2009 22:15:27] *** Звонок закончен *** [07.04.2009 22:15:27] ev9niy: ev9niy is away. This is an auto-reply message. Get your copy of Pamela for Skype today at www.pamela-systems.com and enjoy these messages! [07.04.2009 22:16:28] *** Call to andrew.boltachev, no answer. *** [07.04.2009 22:16:31] *** Звонок закончен *** [07.04.2009 22:16:48] andrew.boltachev: да, здравствуйте [07.04.2009 22:17:01] andrew.boltachev: простите, интернет отключался [07.04.2009 22:17:09] ev9niy: Привет) [07.04.2009 22:17:10] *** Call to andrew.boltachev, no answer. *** [07.04.2009 22:17:25] andrew.boltachev: у меня нет микрофона ( [07.04.2009 22:17:29] *** Звонок закончен *** [07.04.2009 22:17:32] ev9niy: блин) [07.04.2009 22:17:50] ev9niy: Интересно поглядеть что писал, какие сроки, сколько хочешь денег? [07.04.2009 22:18:21] andrew.boltachev: писал -- хтмл парсер [07.04.2009 22:18:32] andrew.boltachev: могу показать примеры [07.04.2009 22:18:40] ev9niy: Сорс можно прям в скайп) [07.04.2009 22:18:50] andrew.boltachev: вот например сделанный мной сайт [07.04.2009 22:19:02] andrew.boltachev: http://pogoda.4informer.ru/ [07.04.2009 22:19:23] andrew.boltachev: сейчас отыщу, "на дальней полке" [07.04.2009 22:19:30] ev9niy: Оки) Жду [07.04.2009 22:20:02] ev9niy: Прикольный сайт [07.04.2009 22:20:19] andrew.boltachev: почти бесполезный...) [07.04.2009 22:20:26] andrew.boltachev: в лпне дохода [07.04.2009 22:21:28] ev9niy: Можено кому-нть продать или в сайт вставить, тур фирме [07.04.2009 22:21:32] ev9niy: Жду код) [07.04.2009 22:22:29] ev9niy: я тут до 22:30 [07.04.2009 22:22:34] ev9niy: потом занят [07.04.2009 22:23:03] andrew.boltachev: вот [07.04.2009 22:23:08] andrew.boltachev: 90+50/60,1=>96,2=>102,3=>108,4=>false); $i=0; while ($zeniths[$i]) { $res = date_sunrise1($time,$format,$lat,$lng,$zeniths[$i],$gmt); if (($res)and($res!=1)) return $res; $i++; } return false; } function date_sunset2 ($time,$format,$lat,$lng,$gmt) { $zeniths = Array(0=>90+50/60,1=>96,2=>102,3=>108,4=>false); $i=0; while ($zeniths[$i]) { $res = date_sunset1 ($time,$format,$lat,$lng,$zeniths[$i],$gmt); if (($res)and($res!=1)) return $res; $i++; } return false; } function to_temperat($a) { $b = ($a{0}==='-') ? 3 : 2; $a = trim(substr($a,0,$b)); settype($a,"double"); return $a; } function windpa($s) { $s = trim(strtolower($s)); if ((strpos($s,"kph")!==false)and(strpos($s,"kph"))!==false) { $s = str_replace("kph","eIa",$s); $s = str_replace("mph","IIa",$s); $s = str_replace("0 IIa","0",$s); $s = str_replace("0 eIa","0",$s); } else { to_log("?Unknown wind format: $s",'get_forecast'); } return $s; } function windd($s) { if ($s == "CALM") { return ""; } else { $s = str_replace("N","N",$s); $s = str_replace("E","A",$s); $s = str_replace("W","C",$s); $s = str_replace("S","?",$s); return $s; } } function processObs($wbfilename, $obs, $day) { //---------------------------------------------------------------------------------------------- $imgid = 0; settype($day,'integer'); if ($wbfilename != "") { $filename = "images/twc/" . GetFileName($wbfilename); $hasimg = mysql_query("SELECT * FROM `weather_observation` WHERE `value`=\"".$obs."\" AND `day`=$day"); if (($hasimg === false) or (mysql_num_rows($hasimg)==0)) { /*echo "Copy: ";*/ //echo "http://weatherbonk.com" . $wbfilename; //echo SCRIPT_DIR . $filename; //echo "copy(\"http://weatherbonk.com" . $wbfilename. "\", \"" . SCRIPT_DIR . $filename . "\");"; $isf = is_readable(BASE_DIR . "weatherscript/" . $filename); if (!$isf) { copy("http://weatherbonk.com" . $wbfilename, BASE_DIR . "weatherscript/" . $filename); to_log ("New image:" . $wbfilename,'observation'); } $isf = is_readable(BASE_DIR . "weatherscript/" . $filename); if (!mysql_query("INSERT INTO `weather_observation` (`wbfilename`,`value`,`rus`,`imgfile`,`isfile`,`day`) VALUES (\"$wbfilename\",\"$obs\",\"$obs\",\"$filename\",$isf,$day)")) { to_log ("MySQL error : " . mysql_error(),'get_forecast'); } to_log ("New value:" . $obs,'observation'); } $hasimg = mysql_query("SELECT * FROM `weather_observation` WHERE `value`=\"".$obs."\" AND `day`=$day"); $fimg = mysql_fetch_array($hasimg); $imgid = $fimg['id']; } return $imgid; //---------------------------------------------------------------------------------------------- } function GetFileName($filepath)//Oaaeeou ion?aa! { if (strpos($filepath,'/') === false) { return $filepath; } else { return GetFileName(substr($filepath,strpos($filepath,'/')+1)); } } function getCC($lat,$lng) { $cxml = simplexml_load_file("http://maps.google.com/maps/geo?output=xml&oe=utf-8&key=".GMAP_KEY."&q=".$f['lat'].",".$f['lng']);//Ia?aaaeaou if (isset($cxml->Response->Placemark->AddressDetails->Country->CountryNameCode)) return $cxml->Response->Placemark->AddressDetails->Country->CountryNameCode; else return false; } //echo "Begin\n"; function delnobr($str) { $str = str_replace("","",$str); $str = str_replace("","",$str); return $str; } function getForecast($id,$lat,$lng,$gmt_offset) { $zenith = 90 + 50/60; //May be other $url = 'http://weatherbonk.com/weather/fragments/forecast.jsp?type=twc&inFrame=yes&skin=v3&inMap=null&fullHeight=true&_display=C&id='.$lat.','.$lng; $doc = file_get_html($url); //echo $doc->find('table',1); if ($doc->find('table',1)==NULL) { //echo "No information!"; return false; } $q = ""; if ((count($doc->find('table',1)->find('tr'))!=21)and(count($doc->find('table',1)->find('tr'))!=20)) { to_log("!!Illegel tr count : ".count($doc->find('table',1)->find('tr'))." (id : ".$id.")",'get_forecast'); to_log($url,'get_forecast'); //return false; } ////echo $id ." : ". . "\n"; foreach ($doc->find('table',1)->find('tr') as $tr) // id="forecastMain" { $td = $tr->find('td'); $tdcount = count($td); if ($tdcount == 0) { } elseif ($tdcount == 1) { //Aaoa //echo "Aaoa : " . trim($td[0]->plaintext) . ""; $fullstrdate = trim($td[0]->plaintext); } elseif ($tdcount == 3) { $img = $td[0]->find('img'); $img = $img[0]; //echo "Ieeoia?aiia (Aa?an = \"".$img->src."\", caiaia = \"".$img->alt."\")" . ""; $q .= ", "; $weather = delnobr($td[1]->innertext); $morning = (preg_match("/(Sunrise)/",$weather)!=0); $evening = (preg_match("/(Sunset)/", $weather)!=0); if (!($morning xor $evening)) { to_log('!!Illegal weather (morning/evening): ' . $weather,'get_forecast'); return false; } $strdate = substr($fullstrdate,strpos($fullstrdate," ")+1); $time = strtotime($strdate); echo "$strdate\n"; $hour = ($morning) ? "06" : "18"; /*Sun calculating*/ $curmonth = (int)date("m",time()); $datemonth = (int)date("m",$time ); $year = (int)date("Y"); /*var_dump($curmonth ); var_dump($datemonth); var_dump($year);*/ if ($curmonth==12 AND $datemonth==1) $year++; $date = date("$year-m-d ".$hour.":00:00",$time); $dateid = "$id $date"; echo "$strdate : ".date("Y-m-d H:i:s",$time)." : $date\n"; $time = strtotime($date); $time_next = $time + 24*60*60; if ($morning) { $sun = date_sunrise1($time,SUNFUNCS_RET_TIMESTAMP,$lat,$lng,$zenith,$gmt_offset); //echo "Sun : ".date("Y-m-d H:i:s",$sun)."\n"; $endtime = date_sunset2 ($time,SUNFUNCS_RET_TIMESTAMP,$lat,$lng,0); //echo "End : ".date("Y-m-d H:i:s",$endtime)."\n"; } else { $sun = date_sunset1 ($time,SUNFUNCS_RET_TIMESTAMP,$lat,$lng,$zenith,$gmt_offset); //echo "Sun : ".date("Y-m-d H:i:s",$sun)."\n"; $endtime = date_sunrise2($time_next,SUNFUNCS_RET_TIMESTAMP,$lat,$lng,0); //echo "End : ".date("Y-m-d H:i:s",$endtime)."\n"; } if ($endtime==0) return false; $q .= "(" . $id . ", \"$date\", \"$dateid\", "; //echo "Iiaiaa : " . $weather . ""; //RegEx-ia?neia no?i?ee iiaiau //Showers, 40% chance of precipitation. Winds 14.5 kph from SW. Humidity 93% Sunrise: 8:03 AM //echo $weather . ""; $res1 = array(); preg_match("/^([^,]+)[,][ ]/",$weather,$res1); //echo "res1 : " . $res1[1] . ""; #$q.=processObs($res1[1]) . ", "; //echo $img->src . ""; $q.= " " . to_temperat(delnobr(($td[2]->plaintext))) . ", "; if (isset($res1[1])) { $q.=processObs($img->src,$res1[1],$morning) . ", "; } else { to_log("!Obs: " . $weather,'get_forecast'); $q.= " 0, "; } $chance = 0; $res2 = array(); preg_match("/^[^,]+[,][ ]+([0-9][0-9]?[0-9]?)[ ]*[%][ ]*/",$weather,$res2); //echo "res2 : " . $res2[1] . ""; if (isset($res2[1])) { $q.=$res2[1] . ", "; $chance = $res2[1]; } else { to_log("!Chance: " . $weather,'get_forecast'); $q.=" -1, "; } $res3 = array(); preg_match("/Winds[ ]*([0-9]+[.]?[0-9]* [km]ph)/",$weather,$res3); //echo "res3 : " . $res3[1] . ""; if (isset($res3[1])) { $q.= "\"" . windpa($res3[1]) . "\", "; }else { to_log("!Wind: " . $weather,'get_forecast'); $q.=" \"\", "; } $res4 = array(); preg_match("/from[ ]*([NEWSCALM]+)/",$weather,$res4); //echo "res4 : " . $res4[1] . ""; //$q.= "\"" . $res4[1] . "\", "; if (isset($res4[1])) { $q.= "\"" . windd($res4[1]) . "\", "; }else { to_log("!WindDir: " . $weather,'get_forecast'); $q.=" \"\", "; } $res5 = array(); preg_match("/Humidity[ ]*([0-9][0-9]?[0-9])?[ ]*[%]/",$weather,$res5); //echo "res5 : " . $res5[1] . ""; if ($chance!=0){ if (isset($res5[1])) { $q.= $res5[1] . ", "; }else { to_log("!Humidity: " . $weather,'get_forecast'); $q.=" -1, "; } } else { $q.=" 0, "; } $res6 = array(); if ($morning) { preg_match("/Sunrise:(.*$)/",$weather,$res6); if (isset($res6[1])) { $q.= "\"" . $res6[1] . "\", \"\""; }else { to_log("!Sunrise: " . $weather,'get_forecast'); $q.=" \"\",\"\""; } } else { preg_match("/Sunset:(.*$)/",$weather,$res6); if (isset($res6[1])) { $q.= "\"\", \"" . $res6[1] . "\""; } else { to_log("!Sunset: " . $weather,'get_forecast'); $q.=" \"\",\"\""; } } //echo "res6 : " . $res6[1] . ""; //echo "Oaiia?aoo?a: " . delnobr($td[2]->plaintext) . ""; $day = ($morning) ? 1 : 0; $sun = date("Y-m-d H:i:s",$sun); $endtime = date("Y-m-d H:i:s",$endtime); $q.=",$day,\"$sun\",\"$endtime\")"; } } $doc->clear(); unset($doc); return $q; } to_log ("----------------Starting update----------------",'get_forecast'); ###mysql_query("TRUNCATE TABLE `weather_forecast`"); $w_countries = mysql_query(" SELECT `work_countries`.`id` FROM `work_countries` WHERE `work_countries`.`work` "); for ($j=0;$j"; $date = date("Y-m-d H:i:s"); $reqhead = "REPLACE INTO `weather_forecast` (`pid`,`date`,`dateid`, `temperature`,`obs`,`chance`,`wind`,`winddir`,`humidity`,`sunrise`,`sunset`,`day`,`sun`,`endtime`) VALUES "; $q = ""; for ($i=0; $i\n"; echo $req; //die (); } unset($q); $q = ""; }*/ $f = mysql_fetch_array($r); //echo $i . " : " . $f['showname'] . ""; $comma = ($i != 0); $offset = $f['utc']; $name = $f['name']; /////echo $f['body'] . " $offset\n"; echo "$name\n"; $s = getForecast($f['id'],$f['lat'],$f['lng'],$offset); //echo $s; if ($s!==false) { $q .= $s; } else { to_log("Unable to request : ".$f['lat'].", ".$f['lng'],'get_forecast'); } } if ($q != "") { $req = $reqhead . substr($q,1); //echo $req . ""; if (!mysql_query($req)) { to_log ("MySQL error (add): " . mysql_error(),'get_forecast'); echo "MySQL error (add): " . mysql_error(); echo "\n"; echo $req; //die (); } } } ?> [07.04.2009 22:23:21] ev9niy: спасибо курю =) [07.04.2009 22:24:14] andrew.boltachev: это не так сразу было... но сейчас работает, полгода как :) [07.04.2009 22:24:33] ev9niy: главное что автомат) [07.04.2009 22:25:50] andrew.boltachev: да. это для остоянного запуска. он за 3 минуты информацию где-то по 200-300 городам о погоде собирает [07.04.2009 22:25:56] andrew.boltachev: ну там сервер мощный [07.04.2009 22:26:46] andrew.boltachev: и как? по поводу сотрудничества? [07.04.2009 22:26:56] ev9niy: Поглядел код интересные моменты с условием и прегматчем) [07.04.2009 22:27:37] ev9niy: Сколько денег думаешь? [07.04.2009 22:27:42] ev9niy: И сроки? [07.04.2009 22:27:47] andrew.boltachev: сроки день [07.04.2009 22:28:06] andrew.boltachev: там xml - его проще так то [07.04.2009 22:28:20] andrew.boltachev: завтра думаю в это же время [07.04.2009 22:28:37] andrew.boltachev: денег 600 думаю [07.04.2009 22:29:05] ev9niy: Ок, 300р после просмотра кода ещё 300р за доводку, если все отлично 600р идет? [07.04.2009 22:29:14] andrew.boltachev: да [07.04.2009 22:29:29] andrew.boltachev: так, а там на постоянный запуск? [07.04.2009 22:29:32] ev9niy: Сроки - обещал завтра в 22:30 значит должно быть готово, если не успешь то не работаю, ок? [07.04.2009 22:29:50] ev9niy: Да будет переодически весеть собирать инфу [07.04.2009 22:29:53] andrew.boltachev: разумеется. сроки это главное в нашем деле [07.04.2009 22:30:27] andrew.boltachev: так как по 100 на проект человек аходит - какая-нибудь верстка там ) [07.04.2009 22:30:39] ev9niy: Ок [07.04.2009 22:30:44] andrew.boltachev: а оплата вебмани будет? или как? [07.04.2009 22:30:58] ev9niy: Тогда подтверждаю заявку и со всем приостанавливаю общение, жду кода [07.04.2009 22:31:06] ev9niy: Оплата YM или WM? [07.04.2009 22:31:12] andrew.boltachev: аа) [07.04.2009 22:31:18] andrew.boltachev: да, webmoney [07.04.2009 22:31:44] andrew.boltachev: +бонус - комментарии (постараюсь подробнее) [07.04.2009 22:32:52] andrew.boltachev: завтра с 22:00 до 23:00 гарантированно буду на связи [07.04.2009 22:33:34] ev9niy: Ок, пойдет [07.04.2009 22:33:57] ev9niy: Отписал всем что тебя выбрал сейас ещё утврежу заявку [07.04.2009 22:40:46] ev9niy: Заявку утвердил, все ок, тогда успехов в работе! [07.04.2009 22:41:13] andrew.boltachev: спасибо, и до завтра! [07.04.2009 22:41:28] ev9niy: Бай) [08.04.2009 14:57:37] andrew.boltachev: Добрый день [08.04.2009 14:57:39] ev9niy: ev9niy is away. This is an auto-reply message. Get your copy of Pamela for Skype today at www.pamela-systems.com and enjoy these messages! [08.04.2009 14:57:45] andrew.boltachev: есть вопросы, если можно [08.04.2009 16:02:39] ev9niy: Привет, сейчас я не доступен, есть 5 мин [08.04.2009 16:03:42] ev9niy: могу ответить на вопросы. [08.04.2009 16:05:23] andrew.boltachev: да [08.04.2009 16:06:05] andrew.boltachev: с основным я разбрался. на выходе могу сделать луюой массив (в терминах PHP Array) [08.04.2009 16:06:22] andrew.boltachev: или нужно просто вывести в консоль? [08.04.2009 16:06:29] andrew.boltachev: *любой [08.04.2009 16:07:16] ev9niy: просто вывести, я там дальше сам :) [08.04.2009 16:07:25] andrew.boltachev: хорошо [08.04.2009 16:07:35] andrew.boltachev: кстати по твоему старому коду [08.04.2009 16:07:51] andrew.boltachev: не понимаю, откуда $xml_sp->Product [08.04.2009 16:07:52] ev9niy: Да знаю, там делать 5 сек :) [08.04.2009 16:08:03] ev9niy: Это как объект [08.04.2009 16:08:14] ev9niy: Перевод объекта в массив потом в базу [08.04.2009 16:08:30] andrew.boltachev: в базу, ну логично :) [08.04.2009 16:08:39] andrew.boltachev: а по категориям [08.04.2009 16:08:57] andrew.boltachev: для каждого фильма выдернуть названия категорий? не только идентификаторы? [08.04.2009 16:09:05] andrew.boltachev: и тут же включить сразу? [08.04.2009 16:09:10] ev9niy: Название, как по тз :) [08.04.2009 16:09:41] andrew.boltachev: хорошо, все в 22 будет готово [08.04.2009 16:10:17] ev9niy: Ок, буду ближе к этому времени! Удачи! [08.04.2009 21:51:58] ev9niy: Доброго вечера как успехи? [08.04.2009 21:52:11] andrew.boltachev: все почти готово [08.04.2009 21:52:22] ev9niy: Ок, нужен YM или WMR кошелек [08.04.2009 21:52:42] andrew.boltachev: подожди 10 мин, доведу код [08.04.2009 21:52:44] andrew.boltachev: :) [08.04.2009 21:52:47] ev9niy: ок [08.04.2009 21:52:51] andrew.boltachev: так то 22:30 [08.04.2009 21:53:03] andrew.boltachev: "дедлайн" :) [08.04.2009 21:53:07] ev9niy: Ок [08.04.2009 22:06:31] andrew.boltachev: так, в 22:30 все с комментариями... [08.04.2009 22:06:47] andrew.boltachev: терпит? [08.04.2009 22:06:58] ev9niy: Можно и без коментов, я пойму ;) [08.04.2009 22:07:07] andrew.boltachev: а, ну хорошо [08.04.2009 22:07:21] andrew.boltachev: если что - объясню по конкретным моментам... [08.04.2009 22:07:36] ev9niy: Ок [08.04.2009 22:07:51] ev9niy: Нужен кошелек, мой [email protected] [08.04.2009 22:10:04] andrew.boltachev: R789697525024 вебмани [08.04.2009 22:10:09] ev9niy: Ок [08.04.2009 22:13:57] ev9niy: Деньгу 300р перевел, код протекции после просмотра кода. [08.04.2009 22:14:15] ev9niy: +300р после мелких правок какие найду после отладки [08.04.2009 22:14:26] andrew.boltachev: ок [08.04.2009 22:14:30] andrew.boltachev: вижу перевод [08.04.2009 22:15:00] ev9niy: ок [08.04.2009 22:27:40] ev9niy: Как успехи? [08.04.2009 22:27:56] ev9niy: Мне завтра в 6:50 вставать ;) [08.04.2009 22:28:00] andrew.boltachev: да нормально. только кое-что переделать решил [08.04.2009 22:28:13] ev9niy: Скинь код плз, можно прям сюда [08.04.2009 22:28:20] andrew.boltachev: ок [08.04.2009 22:28:30] andrew.boltachev: сейчас... вот еще чуть-чут и отлажу ( [08.04.2009 22:28:41] ev9niy: Я подскажу что глючит [08.04.2009 22:30:55] ev9niy: В 22:35 на боковую [08.04.2009 22:30:59] ev9niy: спать. [08.04.2009 22:31:26] andrew.boltachev: ну в 6:50 я тоже буду, если что то нужно будет [08.04.2009 22:31:42] ev9niy: Ок, тогда отложим, идет? [08.04.2009 22:31:48] andrew.boltachev: ага [08.04.2009 22:31:57] ev9niy: Ок, тогда ночи. [08.04.2009 22:31:58] andrew.boltachev: в 6:50 все, с комментариями [08.04.2009 22:32:02] ev9niy: ок [08.04.2009 22:32:10] ev9niy: Лишь бы по ТЗ и раболало ;) [08.04.2009 22:32:13] andrew.boltachev: вот у тебя нерекурсивный поиск [08.04.2009 22:32:25] andrew.boltachev: у меня процедура хитрая, а глючит [08.04.2009 22:32:31] andrew.boltachev: чуть-чуть [08.04.2009 22:32:33] ev9niy: Там нужно было переделать ;) [08.04.2009 22:32:38] ev9niy: А в чём глюк? [08.04.2009 22:32:44] andrew.boltachev: function toarray($x) { if ($x instanceof SimpleXMLElement) { $y = Array(); foreach ($x->children() as $k=>$v){ $y[$k] = $v; } foreach ($x->children as $k=>$v){ $y[$k] = $v; } [08.04.2009 22:32:55] andrew.boltachev: вот точнее не глюк, меня глючит [08.04.2009 22:33:06] andrew.boltachev: дальше допишу [08.04.2009 22:33:17] andrew.boltachev: кстати под запуск - по крону, я правильно понял? [08.04.2009 22:33:29] ev9niy: да [08.04.2009 22:33:45] andrew.boltachev: а ну тогда ок [08.04.2009 22:33:55] andrew.boltachev: файл нужно будет сначала [08.04.2009 22:34:07] andrew.boltachev: скопировать в темповую директорию, а потом парсить [08.04.2009 22:34:17] andrew.boltachev: а то он размером - 40 мб почти [08.04.2009 22:34:29] andrew.boltachev: с этим могут быть проблемы на сервере [08.04.2009 22:34:41] andrew.boltachev: но если что я помогу пхп настроить опыт есть [08.04.2009 22:34:45] ev9niy: function dom2array( $node ,$tab='',$node_name='') { //echo $tab.'#dom2array:'.$node_name.' - '.XML_TEXT_NODE.' - '.$node->nodeType."\r\n"; $result = array(); if($node->nodeType == XML_TEXT_NODE) { $result = $node->nodeValue; $charset = mb_detect_encoding($result,"auto"); if ($charset=='UTF-8'){ $result = iconv($charset,'Windows-1251', $result); } //echo $tab.'#$result: '.$result."\r\n"; } else { if( $node->hasAttributes() ) { $attributes = $node->attributes; if(!is_null($attributes)) foreach ($attributes as $index=>$attr){ $value = $attr->value; $charset = mb_detect_encoding($value,"auto"); if ($charset=='UTF-8'){ $value = iconv($charset,'Windows-1251', $value); } //echo $tab.'#$value: '.$value."\r\n"; $result[$attr->name] = $value; } } if($node->hasChildNodes()){ $children = $node->childNodes; for($i=0;$i<$children->length;$i++){//if ($i>2&&$i<9){ $child = $children->item($i); //$tab= ''; //for($j=0;$j<$i;$j++) { //$tab.="\t"; //} //echo $tab.$i."\r\n"; //if ($child->nodeName == '#text'){ ////echo ' #$child->nodeName: '.$result[$child->nodeName]."\r\n"; //$value = $result[$child->nodeName]; //if (!is_array($value)){ ////$value = $attr->value; //$charset = mb_detect_encoding($value,"auto"); //if ($charset=='UTF-8'){ //$value = '$$+$'.iconv($charset,'Windows-1251', $value); //} //}else { //foreach ($value as $value_title => $value_value){ //$charset = mb_detect_encoding($value_value,"auto"); //if ($charset=='UTF-8'){ //$value[$value_title]= '$$'.iconv($charset,'Windows-1251', $value); //} //} //$result[$child->nodeName]=$value; //} //$result[$attr->name] = $value; //} //if($child->nodeName != '#text') //echo $tab.' #$child->nodeName]: '.$child->nodeName."\r\n"; //echo $tab.''.' #$result: '; print_r($result); echo $tab.''; if(!isset($result[$child->nodeName])){ $tmp = dom2array($child,$tab,$child->nodeName); //echo ' #$tmp: '.$tmp."\r\n"; //echo ' #count($tmp): '.count($tmp)."\r\n"; //echo ' #$tmp: '.$tmp."\r\n"; if (is_array($tmp)){ if (count($tmp)!=0){ $result[$child->nodeName]=$tmp; } }else { if (trim($tmp)!=''){ $result[$child->nodeName]=trim($tmp); } } } else { //$charset = mb_detect_encoding($value,"auto"); //if ($charset=='UTF-8'){ //$value = iconv($charset,'Windows-1251', $value); //} $aux = $result[$child->nodeName]; //echo ' #$aux: '.$aux."\r\n"; $result[$child->nodeName] = array( $aux ); $tmp= array();; $tmp = dom2array($child,$tab,$child->nodeName); //if ($tmp!='') // if (is_array($tmp)){ if (count($tmp)!=0){ $result[$child->nodeName][]=$tmp; } }else { if (trim($tmp)!=''){ $result[$child->nodeName][]=trim($tmp); } } } } } } return $result; } [08.04.2009 22:35:04] andrew.boltachev: громоздко [08.04.2009 22:35:17] ev9niy: это для HTML Объекта) [08.04.2009 22:35:18] andrew.boltachev: а кодировка вывода какая нужна? [08.04.2009 22:35:23] ev9niy: пофг [08.04.2009 22:35:31] ev9niy: сам поправлю [08.04.2009 22:35:32] andrew.boltachev: UTF-8 будет [08.04.2009 22:35:36] ev9niy: ок [08.04.2009 22:36:05] andrew.boltachev: simplexml_load_file - не работает с CP1251 [08.04.2009 22:36:08] ev9niy: парсить буду в локали так что все ок [08.04.2009 22:36:52] ev9niy: Лады, давай я байньки! Ты тоже поспи мозг лучше работает а ещё советую перерывы workrave.org [08.04.2009 22:36:55] ev9niy: Бай! [08.04.2009 22:37:16] andrew.boltachev: до встречи [09.04.2009 6:57:10] ev9niy: Обешал что будешь? [09.04.2009 7:30:00] andrew.boltachev: не получилось быть. сейчас все сделаю [09.04.2009 8:06:54] ev9niy: Извинюсь сегодня целый день в делах, завтра утром в 8 буду, приму код ок? [09.04.2009 8:07:33] andrew.boltachev: хорошо [09.04.2009 8:07:34] ev9niy: ev9niy is away. This is an auto-reply message. Get your copy of Pamela for Skype today at www.pamela-systems.com and enjoy these messages! [09.04.2009 8:07:38] andrew.boltachev: да могу и сейачс кинуть [09.04.2009 8:07:41] andrew.boltachev: вроде все [09.04.2009 8:08:01] andrew.boltachev: ну ладно, зато еще как могу проверю еще [09.04.2009 8:08:24] andrew.boltachev: почта кстати [email protected] ? [09.04.2009 8:08:49] andrew.boltachev: [email protected] [09.04.2009 8:12:56] andrew.boltachev: в 7-8 я точно в сети бываю, кроме выходных [09.04.2009 8:36:05] ev9niy: [email protected] [09.04.2009 8:36:12] ev9niy: Ок, тогда до завтра! Удачи! [6:51:25] ev9niy: Доброго утра! [6:51:29] ev9niy: Как успехи?) [7:06:52] andrew.boltachev: да, нормально [7:07:32] andrew.boltachev: сейчас скоро код отдам, там еще всего 1 маленькая проблема была [7:08:08] ev9niy: Ок, жду [7:08:18] ev9niy: 3 дня уже прошло :) ev9niy [7:44:43] ev9niy: [email protected] [7:44:50] andrew.boltachev: ок [7:44:56] andrew.boltachev: туда все аправить? [7:45:03] andrew.boltachev: *направить [7:45:03] ev9niy: Да [7:45:10] ev9niy: Все должно быть как в ТЗ [7:45:27] andrew.boltachev: Ок [7:45:37] ev9niy: Что там глючит? [7:46:03] andrew.boltachev: у меня в массив из xml не переводит [7:46:14] andrew.boltachev: если несколько одинаковых тегов подряд [7:46:21] andrew.boltachev: вот и разбираюсь [7:46:23] andrew.boltachev: а так все [7:46:53] andrew.boltachev: мне уже тоже надоело) одним проектом заниматься [7:46:54] ev9niy: На выходе массив: [4412676] [url]=http://www.ozon.ru/context/detail/id/4412676/?from=partner [categoryId_1]= 10059 [categoryId_2]= 10388 [categoryId_3]= 1075240 [orderingTime] [ordering]= На складе : Итак далее все значения какие будут. [description]= Программа.. [Следующий ID] Где название ключей одинаковые, будет: [4412676] [categoryId_1]= 10059 [4412676] [categoryId_2]= 10388 [4412676] [categoryId_3]= 1075240 И ВАЖНО вытащить из того же xml [categories] названия категорий: Для нашего примера: [4412676] [categoryId_1]= Аэробика. Фитнес [4412676] [categoryId_2]= Обучающие видеопрограммы [4412676] [categoryId_3]= Красота и здоровье [7:46:58] ev9niy: ТЗ [7:47:02] andrew.boltachev: дада [7:47:08] andrew.boltachev: вот с этим как раз [7:47:42] ev9niy: Просто масив проверять if(isset()) и делать [$categ.'_'.$current_count] [7:47:52] ev9niy: 5 сек;) [7:48:01] andrew.boltachev: ой ну так некрасиво :) [7:48:08] andrew.boltachev: надо массив вложенный [7:48:10] andrew.boltachev: ) [7:48:17] andrew.boltachev: его же обрабатывать [7:48:51] ev9niy: Тогда $array[$categ]=array() [7:49:01] andrew.boltachev: да [7:49:08] andrew.boltachev: только это не работает [7:49:08] ev9niy: И дальше if is_array() [7:49:25] ev9niy: Потому что изначально переменную нужно создавать как массив [7:49:42] ev9niy: Ладно код на почте? [7:49:47] andrew.boltachev: ага [7:50:01] andrew.boltachev: к сожалению придется заочно вот так вот [7:50:13] andrew.boltachev: но там потом когда буду в сети - пиши [7:50:20] ev9niy: Уходишь? [7:50:28] andrew.boltachev: потом да [7:50:42] andrew.boltachev: потом приду не знаю во сколько пока [7:51:04] ev9niy: сейчас время сколько есть? [7:51:14] andrew.boltachev: час еще гдето [7:51:20] andrew.boltachev: ну я успеть должен...) [7:51:31] ev9niy: Кода на почте нет [7:51:40] ev9niy: [email protected] [7:51:58] andrew.boltachev: пока нет. могу этот выслать [7:52:22] ev9niy: У меня желаюшийх человек 12 отдал тебе так как общеал в срок. [7:52:27] ev9niy: Можешь не выслылать [7:52:34] ev9niy: Так как в срок не успел [7:52:53] ev9niy: Я плюс поставил потому как видел что делал [7:53:01] ev9niy: Но если пообщела, нужно сделать вовремя [7:53:14] ev9niy: Показать что есть я бы подсказал как исправить [7:53:29] andrew.boltachev: понятно, отзыв бескомпромисный спасибо [7:53:42] andrew.boltachev: shop->offers->offer; //$i=0; function xml2array_parse($xml){ $return = Array(); $children = $xml->children(); foreach ($children as $parent => $child){ if (count($children[$parent])>0){ $return["$parent"] = Array(); var_dump($parent); foreach ($child as $k=>$v){ $return["$parent"][] = xml2array_parse($v)?xml2array_parse($v):"$v"; } } else { $return["$parent"] = xml2array_parse($child)?xml2array_parse($child):"$child"; } } foreach ($xml->attributes() as $parent => $child){ $return["$parent"] = xml2array_parse($child)?xml2array_parse($child):"$child"; } return $return; } function getcname($cid) { global $xml_sp; foreach ($xml_sp->shop->categories->category as $category){ if ($category["id"] == $cid) return (string)$category; } return $cid; } $data = Array(); $i=0; foreach ($offers as $key=>$offer) { $item = xml2array_parse($offer); var_dump($offer->categoryId);die(); $id = $item["id"]; //if ($id!==64186) continue; //if ($id==64186) print_r($offer); unset($item["id"]); /*if (is_array($item["categoryId"])) { foreach ($item["categoryId"] as $k=>$v){ $item["categoryId"][$k] = getcname($v); } } else { $item["categoryId"] = getcname($item["categoryId"]); } if (is_array($item["categoryId"])) { var_dump($item); die(); }*/ $data[$id] = $item; $i++; //if ($id==64186) break; } //print_r($data[64186]); [7:53:54] ev9niy: Ок момент, код проверю, сколько будешь тут? [7:54:06] andrew.boltachev: час [7:54:16] ev9niy: ок, проверяю [7:55:25] ev9niy: Кстати обещал с коментариями, так же их нет [7:55:39] andrew.boltachev: ты потом сказал не надо [7:55:46] andrew.boltachev: давай сделаю [7:56:02] andrew.boltachev: просто он не окончательный [7:56:05] ev9niy: Я сказал что не надо, ты сказал ок, будет вчера утрам все сделано да с коментариями [7:59:21] andrew.boltachev: ну и что неправильно? [7:59:34] andrew.boltachev: if (count($children[$parent])>0){ $return["$parent"] = Array(); foreach ($child as $k=>$v){ $return["$parent"][] = xml2array_parse($v)?xml2array_parse($v):"$v"; } } [7:59:44] andrew.boltachev: вот это бесполезный код [7:59:54] ev9niy: Сейас смотрю, по факту как по ТЗ не даелает [8:00:08] andrew.boltachev: категории - нет [8:00:11] andrew.boltachev: не делает [8:07:53] andrew.boltachev: что от меня будет нужно? [8:07:57] andrew.boltachev: вообще? [8:08:15] ev9niy: Сейчас думаю, нужно отлаживать код, по тз он не рабочий [8:08:29] ev9niy: Соотвествнно нужно просить человек снова сделать [8:08:35] ev9niy: за свои деньги отлаживать не буду [8:08:40] ev9niy: я и сам мог его написать [8:08:44] ev9niy: за час [8:08:45] andrew.boltachev: то есть мне не платить? [8:08:49] andrew.boltachev: или как? [8:08:58] ev9niy: Оплачу часть за время [8:09:08] ev9niy: Код не готов по факту, сроки пропушены [8:09:41] andrew.boltachev: вот мне тоже кажется, что ты бы сам написал. я даже не понял, почему так стал делать - на фриланс писать. еще и за 600 рублей [8:10:11] ev9niy: Мне человек за 300 р сделал парсин torrents.ru за день [8:10:27] andrew.boltachev: нда, ну там HTML [8:10:35] ev9niy: И без вопросом все отлично, от скилов человека зависит кому делать 5 мин кому делать 3 дня [8:10:38] andrew.boltachev: у меня вот теперь с XML не получается [8:10:45] ev9niy: Сколько денег за не сделаную работу хочешь? [8:10:49] andrew.boltachev: не знаю [8:10:56] andrew.boltachev: 150руб [8:11:00] ev9niy: Ок [8:11:13] ev9niy: Момент перевожу [8:11:13] andrew.boltachev: код есть его можно отладить [8:11:22] andrew.boltachev: дак с протекцией есть [8:11:32] ev9niy: ещё сейчас переведу [8:11:35] andrew.boltachev: могу взять 300 и 150 послать обратно [8:11:49] andrew.boltachev: а то ждать срока протекции [8:13:16] andrew.boltachev: там 300 есть с протекцией [8:13:23] andrew.boltachev: дак как поступать? [8:15:20] ev9niy: Перевожу [8:15:24] andrew.boltachev: получил [8:15:33] ev9niy: 150 р все ок? [8:15:38] ev9niy: Вернется на 300р [8:15:40] andrew.boltachev: да. а 300 ждать пока само уйдет обратно? [8:15:48] ev9niy: да [8:16:15] andrew.boltachev: нда. в большой степени неприятно. оно все сообщения будет слать. да ладно поделом мне [8:16:49] andrew.boltachev: а, завтра уйдет [8:16:52] ev9niy: Все сообщения? [8:17:01] ev9niy: Про протекцию? [8:17:06] andrew.boltachev: да [8:17:15] andrew.boltachev: типа как открываю , пишет [8:17:36] andrew.boltachev: да не надо мне давать - за перевод комиссию будет брать. а так бесплатно уйдет [8:17:45] andrew.boltachev: все тогда, желаю удачи? [8:18:19] ev9niy: Ок, тоже успехов :) [8:18:57] andrew.boltachev: наверно буду повышать квалификацию... так для себя. а то работать плохо. и главно е- сроки в любом случае [8:19:26] ev9niy: Сроки лучше ставить 4 дня, мне например не горит ;) [8:20:11] ev9niy: И код писать не компактно, а размашесто так быстрее можно ошибку найти, а если стопор, то нужно моделировать ситуацию и пробовать все что есть что бы решить проблему