\s*$choice_name<\/choicename>(\s*.*?<\/click>)\s*<\/choice>/s", "$text", $matches)) { return $matches[1]; } else { die ('nem talalom a choice-t'); } }; function esystem_change_field_value ($text,$field_name,$value){//TODO:fel van tetelezve, hogy elol van a name, es utanna a value! $count = 0; $new_text = preg_replace("/(.*?$field_name<\/name>.*?).*?(<\/value>.*?<\/field>)/s",'${1}'.$value.'${2}', $text,'-1',$count); if ($count == 1) { return $new_text; } else { die ('talalatok szam('.$count.') != 1 a fieldet:'.$field_name); } }; function esystem_xml_communication ($url,$fields) { $head = urlencode(''); $tail = urlencode(''); $head_nc = ''; $tail_nc = ''; print "A server fele kuldeno adatok:\n"; var_dump($fields); $text = $head; $text_nc = $head_nc; foreach($fields as $key=>$value) { $text.=''.urlencode($key).''.urlencode($value).''; $text_nc.=''.$key.''.$value.''; } $text .= $tail; $text_nc .= $tail_nc; print "\nA server fele kuldott get keres (url encodolatlanul):\n".$url.'?xml='.$text_nc."\n\n"; $contents = file_get_contents($url.'?xml='.$text); print "\nA server felol kapott valasz\n".$contents."\n\n"; return $contents; } function esystem_xml_send_text ($url,$text) { $head = ''; $tail = ''; $text = $head.$text.$tail; print "A server fele xml kuldes: ".$text."\n\n"; # print "send:\n".$text."\n\n\n"; $postdata = http_build_query( array( 'xml' => $text, ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); print "\nA server felol kapott valasz:\n".$result."\n\n"; return $result; } $url = 'http://.../cgi-bin/index.cgi'; $fields = array( 'dok'=>'rendeles_xml_felulet', 'token'=>'A token helye', 'lang'=>'HU', 'tetel_mezok'=>'2', ); $result = esystem_xml_communication($url,$fields); # print $result; $click = esystem_catch_choice_click($result,'form'); $click = esystem_change_field_value($click,'partner_id',1); $click = esystem_change_field_value($click,'szallitasi_hatarido','2010-01-02'); $click = esystem_change_field_value($click,'rendelesi_hivatkozas','renles0001'); $click = esystem_change_field_value($click,'megjegyzes','XML test'); $click = esystem_change_field_value($click,'tetel_mezok','2'); $click = esystem_change_field_value($click,'tetel_tipusa_1','termék'); $click = esystem_change_field_value($click,'tetel_cikkszam_1','termek1'); $click = esystem_change_field_value($click,'tetel_menny_1','3'); $click = esystem_change_field_value($click,'tetel_netto_1','300'); $click = esystem_change_field_value($click,'tetel_megj_1','megj1'); $click = esystem_change_field_value($click,'tetel_tipusa_2','szolgáltatás'); $click = esystem_change_field_value($click,'tetel_cikkszam_2','szolg1'); $click = esystem_change_field_value($click,'tetel_menny_2','4'); $click = esystem_change_field_value($click,'tetel_netto_2','500'); $click = esystem_change_field_value($click,'tetel_megj_2','tetel megj'); $click = esystem_change_field_value($click,'button','b_felvesz'); $result = esystem_xml_send_text($url,$click); # print $result; ?>