Код парсинга погоды PHP: <? if(!defined("DNREAD")) exit(); $bt = ""; // ПАРАМЕТРЫ // Не забудьте о копирайтах Гисметео! =) $simple = implode(file('http://informer.gismeteo.ru/xml/28225_1.xml')); // [url=http://informer.gismeteo.ru/xml/]http://informer.gismeteo.ru/xml/[/url]КОД_ГОРОДА_ЦИФРАМИ_1.xml $img = "up/i/"; // Папка с изображениями облачности и осадков $imgr = "gif"; // Тип изображений (расширение) $tw = "158"; // Рабочая часть блока (пикселей или процентов) $i_w = "16"; // Ширина изображений облачности и осадков (для правильного отображения страницы) // ТЕКСТ $tnight = "Ночью"; // Ночьной текст $tmorning = "Утром"; // Утренний текст $daytime = "Днем"; // Дневной текст $evening = "Вечером"; // Вечерний текст $tad = "Атм. давление"; // Атмосферный текст $tvv = "Влажность воздуха"; // Влажный текст // ПАРСИНГ XML-ФАЙЛА $xml = xml_parser_create(); xml_parser_set_option($xml,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($xml,XML_OPTION_SKIP_WHITE,1); $indexes = array(); $values = array(); xml_parse_into_struct($xml,$simple, $values, $indexes); xml_parser_free($xml); // ПРИСВОЕНИЕ АТРИБУТОВ $tod=array('0'=>"$tnight",'1'=>"$tmorning",'2'=>"$daytime",'3'=>"$evening"); $cloudiness=array('0'=>"00.$imgr",'1'=>"01.$imgr",'2'=>"02.$imgr",'3'=>"03.$imgr"); $cloudinessalt=array('0'=>"ясно",'1'=>"переменная облачность",'2'=>"облачно",'3'=>"пасмурно"); $precipitation=array('4'=>"04.$imgr",'5'=>"05.$imgr",'6'=>"06.$imgr",'7'=>"07.$imgr",'8'=>"08.$imgr",'9'=>"09.$imgr",'10'=>"10.$imgr"); $precipitationalt=array('4'=>"дождь",'5'=>"ливень",'6'=>"снег",'7'=>"снег",'8'=>"гроза",'9'=>"нет данных",'10'=>"без осадков"); // ВЫВОД ПОГОДЫ $bt.="<table width=\"$tw\" border=\"0\">\n"; // ПОГОДА НОЧЬЮ $t1=$values[3]["attributes"]["tod"]; $t1=$tod["$t1"]; $c1=$values[4]["attributes"]["cloudiness"]; $ac1=$cloudinessalt["$c1"]; $c1=$cloudiness["$c1"]; $p1=$values[4]["attributes"]["precipitation"]; $ap1=$precipitationalt["$p1"]; $p1=$precipitation["$p1"]; $tv1=($values[6]["attributes"]["min"] > 0) ? '+'.$values[6]["attributes"]["min"] : ''.$values[6]["attributes"]["min"]; $tvm1=($values[6]["attributes"]["max"] > 0) ? '+'.$values[6]["attributes"]["max"] : ''.$values[6]["attributes"]["max"]; $bt.="<tr valign=\"middle\" align=\"right\">\n"; $bt.="<td width=\"18%\">".$t1.": </td><td width=\"25%\"><b>".$tv1."</b>..<b> ".$tvm1."</b> °C</td><td width=\"20%\" align=\"right\"><img src=\"$img$c1\" alt=\"$ac1\" width=\"$i_w\"><img src=\"".$img.$p1."\" alt=\"$ap1\" width=\"$i_w\"></td>\n"; $bt.="</tr>\n"; // ПОГОДА УТРОМ $t2=$values[11]["attributes"]["tod"]; $t2=$tod["$t2"]; $c2=$values[12]["attributes"]["cloudiness"]; $ac2=$cloudinessalt["$c2"]; $c2=$cloudiness["$c2"]; $p2=$values[12]["attributes"]["precipitation"]; $ap2=$precipitationalt["$p2"]; $p2=$precipitation["$p2"]; $tv2=($values[14]["attributes"]["min"] > 0) ? '+'.$values[14]["attributes"]["min"] : ''.$values[14]["attributes"]["min"]; $tvm2=($values[14]["attributes"]["max"] > 0) ? '+'.$values[14]["attributes"]["max"] : ''.$values[14]["attributes"]["max"]; $bt.="<tr valign=\"middle\" align=\"right\">\n"; $bt.="<td width=\"18%\">".$t2.": </td><td width=\"25%\"><b>".$tv2."</b>..<b> ".$tvm2."</b> °C</td><td width=\"20%\" align=\"right\"><img src=\"$img$c2\" alt=\"$ac2\" width=\"$i_w\"><img src=\"".$img.$p2."\" alt=\"$ap2\" width=\"$i_w\"></td>\n"; $bt.="</tr>\n"; // ПОГОДА ДНЕМ $t3=$values[19]["attributes"]["tod"]; $t3=$tod["$t3"]; $c3=$values[20]["attributes"]["cloudiness"]; $ac3=$cloudinessalt["$c3"]; $c3=$cloudiness["$c3"]; $p3=$values[20]["attributes"]["precipitation"]; $ap3=$precipitationalt["$p3"]; $p3=$precipitation["$p3"]; $tv3=($values[22]["attributes"]["min"] > 0) ? '+'.$values[22]["attributes"]["min"] : ''.$values[22]["attributes"]["min"]; $tvm3=($values[22]["attributes"]["max"] > 0) ? '+'.$values[22]["attributes"]["max"] : ''.$values[22]["attributes"]["max"]; $bt.="<tr valign=\"middle\" align=\"right\">\n"; $bt.="<td width=\"18%\">".$t3.": </td><td width=\"25%\"><b>".$tv3."</b>..<b> ".$tvm3."</b> °C</td><td width=\"20%\" align=\"right\"><img src=\"$img$c3\" alt=\"$ac3\" width=\"$i_w\"><img src=\"".$img.$p3."\" alt=\"$ap3\" width=\"$i_w\"></td>\n"; $bt.="</tr>\n"; // ПОГОДА ВЕЧЕРОМ $t4=$values[27]["attributes"]["tod"]; $t4=$tod["$t4"]; $c4=$values[28]["attributes"]["cloudiness"]; $ac4=$cloudinessalt["$c4"]; $c4=$cloudiness["$c4"]; $p4=$values[28]["attributes"]["precipitation"]; $ap4=$precipitationalt["$p4"]; $p4=$precipitation["$p4"]; $tv4=($values[30]["attributes"]["min"] > 0) ? '+'.$values[30]["attributes"]["min"] : ''.$values[30]["attributes"]["min"]; $tvm4=($values[30]["attributes"]["max"] > 0) ? '+'.$values[30]["attributes"]["max"] : ''.$values[30]["attributes"]["max"]; $bt.="<tr valign=\"middle\" align=\"right\">\n"; $bt.="<td width=\"18%\">".$t4.": </td><td width=\"25%\"><b>".$tv4."</b>..<b> ".$tvm4."</b> °C</td><td width=\"20%\" align=\"right\"><img src=\"$img$c4\" alt=\"$ac4\" width=\"$i_w\"><img src=\"".$img.$p4."\" alt=\"$ap4\" width=\"$i_w\"></td>\n"; $bt.="</tr>\n"; $bt.="</table>\n"; // ДАВЛЕНИЕ И ВЛАЖНОСТЬ $bt.="<table width=\"$tw\" border=0>\n"; $ad=$values[21]["attributes"]["min"]; $vv=$values[24]["attributes"]["min"]; $bt.="<tr valign=\"middle\" align=\"right\"><td width=\"100%\">".$tad.": ".$ad." мм<br>".$tvv.": ".$vv." %</td>\n"; $bt.="</tr>\n"; $bt.="</table>"; return $bt; ?> Вопрос в следующем: Стоит комп в локальной сети с Денвером. Инет на этом компе через прокси. Подскажите, люди добрые, как изменить этот код, чтоб через прокси работал? Спасибо
написать за вас код? этому никому не нужно. направление мысли я вам дал, учитесь писать код сами, никто его за вас это делать не будет.
Спасибо. Направление есть. Я ж не прошу прям все за меня писать. Поправить надо бы. Вот что получилось: PHP: <? function get($url,$proxy) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); curl_setopt($ch, CURLOPT_PROXY, "$proxy"); $ss=curl_exec($ch); curl_close($ch); return $ss; } if(!defined("DNREAD")) exit(); $bt = ""; $prox = 'ип:порт'; // адрес прокси $a=get('http://informer.gismeteo.ru/xml/27612_1.xml',$prox); $simple = implode(file('$a')); $img = "up/i/"; // Папка с изображениями облачности и осадков $imgr = "gif"; // Тип изображений (расширение) $tw = "158"; // Рабочая часть блока (пикселей или процентов) $i_w = "16"; // Ширина изображений облачности и осадков (для правильного отображения страницы) // ТЕКСТ $tnight = "Ночью"; // Ночьной текст $tmorning = "Утром"; // Утренний текст $daytime = "Днем"; // Дневной текст $evening = "Вечером"; // Вечерний текст $tad = "Атм. давление"; // Атмосферный текст $tvv = "Влажность воздуха"; // Влажный текст // ПАРСИНГ XML-ФАЙЛА $xml = xml_parser_create(); xml_parser_set_option($xml,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($xml,XML_OPTION_SKIP_WHITE,1); $indexes = array(); $values = array(); xml_parse_into_struct($xml,$simple, $values, $indexes); xml_parser_free($xml); // ПРИСВОЕНИЕ АТРИБУТОВ $tod=array('0'=>"$tnight",'1'=>"$tmorning",'2'=>"$daytime",'3'=>"$evening"); $cloudiness=array('0'=>"00.$imgr",'1'=>"01.$imgr",'2'=>"02.$imgr",'3'=>"03.$imgr"); $cloudinessalt=array('0'=>"ясно",'1'=>"переменная облачность",'2'=>"облачно",'3'=>"пасмурно"); $precipitation=array('4'=>"04.$imgr",'5'=>"05.$imgr",'6'=>"06.$imgr",'7'=>"07.$imgr",'8'=>"08.$imgr",'9'=>"09.$imgr",'10'=>"10.$imgr"); $precipitationalt=array('4'=>"дождь",'5'=>"ливень",'6'=>"снег",'7'=>"снег",'8'=>"гроза",'9'=>"нет данных",'10'=>"без осадков"); // ВЫВОД ПОГОДЫ $bt.="<table width="$tw" border="0">\n"; // ПОГОДА НОЧЬЮ $t1=$values[3]["attributes"]["tod"]; $t1=$tod["$t1"]; $c1=$values[4]["attributes"]["cloudiness"]; $ac1=$cloudinessalt["$c1"]; $c1=$cloudiness["$c1"]; $p1=$values[4]["attributes"]["precipitation"]; $ap1=$precipitationalt["$p1"]; $p1=$precipitation["$p1"]; $tv1=($values[6]["attributes"]["min"] > 0) ? '+'.$values[6]["attributes"]["min"] : ''.$values[6]["attributes"]["min"]; $tvm1=($values[6]["attributes"]["max"] > 0) ? '+'.$values[6]["attributes"]["max"] : ''.$values[6]["attributes"]["max"]; $bt.="<tr valign="middle" align="right">\n"; $bt.="<td width="18%">".$t1.": </td><td width="25%"><b>".$tv1."</b>..<b> ".$tvm1."</b> °C</td><td width="20%" align="right"><img src="$img$c1" alt="$ac1" width="$i_w"><img src="".$img.$p1."" alt="$ap1" width="$i_w"></td>\n"; $bt.="</tr>\n"; // ПОГОДА УТРОМ $t2=$values[11]["attributes"]["tod"]; $t2=$tod["$t2"]; $c2=$values[12]["attributes"]["cloudiness"]; $ac2=$cloudinessalt["$c2"]; $c2=$cloudiness["$c2"]; $p2=$values[12]["attributes"]["precipitation"]; $ap2=$precipitationalt["$p2"]; $p2=$precipitation["$p2"]; $tv2=($values[14]["attributes"]["min"] > 0) ? '+'.$values[14]["attributes"]["min"] : ''.$values[14]["attributes"]["min"]; $tvm2=($values[14]["attributes"]["max"] > 0) ? '+'.$values[14]["attributes"]["max"] : ''.$values[14]["attributes"]["max"]; $bt.="<tr valign="middle" align="right">\n"; $bt.="<td width="18%">".$t2.": </td><td width="25%"><b>".$tv2."</b>..<b> ".$tvm2."</b> °C</td><td width="20%" align="right"><img src="$img$c2" alt="$ac2" width="$i_w"><img src="".$img.$p2."" alt="$ap2" width="$i_w"></td>\n"; $bt.="</tr>\n"; // ПОГОДА ДНЕМ $t3=$values[19]["attributes"]["tod"]; $t3=$tod["$t3"]; $c3=$values[20]["attributes"]["cloudiness"]; $ac3=$cloudinessalt["$c3"]; $c3=$cloudiness["$c3"]; $p3=$values[20]["attributes"]["precipitation"]; $ap3=$precipitationalt["$p3"]; $p3=$precipitation["$p3"]; $tv3=($values[22]["attributes"]["min"] > 0) ? '+'.$values[22]["attributes"]["min"] : ''.$values[22]["attributes"]["min"]; $tvm3=($values[22]["attributes"]["max"] > 0) ? '+'.$values[22]["attributes"]["max"] : ''.$values[22]["attributes"]["max"]; $bt.="<tr valign="middle" align="right">\n"; $bt.="<td width="18%">".$t3.": </td><td width="25%"><b>".$tv3."</b>..<b> ".$tvm3."</b> °C</td><td width="20%" align="right"><img src="$img$c3" alt="$ac3" width="$i_w"><img src="".$img.$p3."" alt="$ap3" width="$i_w"></td>\n"; $bt.="</tr>\n"; // ПОГОДА ВЕЧЕРОМ $t4=$values[27]["attributes"]["tod"]; $t4=$tod["$t4"]; $c4=$values[28]["attributes"]["cloudiness"]; $ac4=$cloudinessalt["$c4"]; $c4=$cloudiness["$c4"]; $p4=$values[28]["attributes"]["precipitation"]; $ap4=$precipitationalt["$p4"]; $p4=$precipitation["$p4"]; $tv4=($values[30]["attributes"]["min"] > 0) ? '+'.$values[30]["attributes"]["min"] : ''.$values[30]["attributes"]["min"]; $tvm4=($values[30]["attributes"]["max"] > 0) ? '+'.$values[30]["attributes"]["max"] : ''.$values[30]["attributes"]["max"]; $bt.="<tr valign="middle" align="right">\n"; $bt.="<td width="18%">".$t4.": </td><td width="25%"><b>".$tv4."</b>..<b> ".$tvm4."</b> °C</td><td width="20%" align="right"><img src="$img$c4" alt="$ac4" width="$i_w"><img src="".$img.$p4."" alt="$ap4" width="$i_w"></td>\n"; $bt.="</tr>\n"; $bt.="</table>\n"; // ДАВЛЕНИЕ И ВЛАЖНОСТЬ $bt.="<table width="$tw" border=0>\n"; $ad=$values[21]["attributes"]["min"]; $vv=$values[24]["attributes"]["min"]; $bt.="<tr valign="middle" align="right"><td width="100%">".$tad.": ".$ad." мм<br>".$tvv.": ".$vv." %</td>\n"; $bt.="</tr>\n"; $bt.="</table>"; return $bt; ?> Где 'ип' и 'порт' - ип и порт прокси соответственно. Посмотрите плиз, где ошибка. Не хочет данные хмл забирать и все тут.
Да нет ошибки. Просто xml данных нет. Пусто. Выводит: Это информер погоды через xml. Подскажите почему данные не приходят через прокси? Что не так?
занимайтесь отладкой кода поэтапно. а не с конца. если ничего в $a нет смотрите в сторону ошибок curl`а. выведите curl_errno($ch)
Вот ошибка: Warning: implode() [function.implode]: Argument to implode must be an array Но какая ему разница. Что я ему так PHP: $simple = implode(file('http://informer.gismeteo.ru/xml/27612_1.xml')); что так: PHP: function get($url,$proxy) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); curl_setopt($ch, CURLOPT_PROXY, "$proxy"); $ss=curl_exec($ch); curl_close($ch); return $ss; } $prox = '10.87.64.9:8080'; // адрес прокси $a=get('http://informer.gismeteo.ru/xml/27612_1.xml',$prox); $simple = implode(file('$a')); 1 вариант работает
curl_exec() string возвращает. Разобрался. Вот спасибо. Все заработало. Наставили меня на путь истинный Исправил. Кому интересно, вот: PHP: function get($url,$proxy) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); curl_setopt($ch, CURLOPT_PROXY, "$proxy"); $ss=curl_exec($ch); curl_close($ch); return $ss; } if(!defined("DNREAD")) exit(); $bt = ""; $prox = '10.87.64.9:8080'; // адрес прокси $simple=get('http://informer.gismeteo.ru/xml/27612_1.xml',$prox); ну и т. д.