olá boa tarde se alguem me puder ajudar
Transcrição
olá boa tarde se alguem me puder ajudar
olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/02/27 15:45 _____________________________________ Olá boa tarde estou com um problema no meu php que não consigo resolver sera q alguem me pode ajudar ?? O ficheiro é este :<?php $cityId = $_GET; if (($cityId == null) || (strcmp($cityId, "")==0)) { $cityId = "12"; } $sock = fsockopen("www.meteo.pt", 80, $errno, $errstr, 10); if (!$sock) { exit($errstr."(".$errno.")\n"); } else { fwrite($sock, "GET /pt/previsao/inicial.jsp HTTP"); fwrite($sock, "\r\n"); $headers = ""; while ($str = trim(fgets($sock, 4096))) $headers .= "$str\n"; echo "\n"; $body = ""; while (!feof($sock)) $body .= fgets($sock, 4096); fclose($sock); $needle = "<title>OpenCms - erros</title>"; if ( strcmp($needle, substr($body, strpos($body, $needle, 0), 30)) == 0 ) { exit("Problemas tecnicos "."|0|0"); } //cidade $startText = '<div id="tipTempo'.$cityId.'"'; $endText = '</div>'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $city = htmlentities(substr($body, $pos1, ($pos2-$pos1))."."); //vento $startText = '<div id="tipVento'.$cityId.'"'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $wind = htmlentities(substr($body, $pos1, ($pos2-$pos1))); //tempMax $startText = 'tempo'.$cityId; $pos1 = strpos($body, $startText); $pos2 = strpos($body, $endText, $pos1); $pos2 = strpos($body, $endText, $pos2+10); $temperatures = substr($body, $pos1, ($pos2-$pos1)); $startText = 'tempMax'; $endText = "ºC </td>"; $pos1 = strpos($temperatures, $startText) + strlen($startText) + 2; $pos2 = strpos($temperatures, $endText, $pos1); $tempMax = substr($temperatures, $pos1, ($pos2-$pos1)); $startText = '"tempMin"> '; ============================================================================ PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25 Re:olá boa tarde se alguem me puder ajudar Posted by mAiN_iNfEcTiOn - 2009/02/27 18:07 _____________________________________ excelente... agora.... hum.... a dúvida? ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/03/02 10:42 _____________________________________ olá obrigado por responder a duvida é o seguite , isso não funciona já alterei o link e nada . Gostaria de deixar isso a funcionar mas não consigo !!!! . DEsde já um muito obrigado.:) ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by m42 - 2009/03/03 11:29 _____________________________________ rodas1973 wrote: (...) , isso não funciona já alterei o link e nada . Gostaria de deixar isso a funcionar mas não consigo !!!! (...) Sendo que "isso" refere-se a quê concretamente ? ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/03/03 11:54 _____________________________________ m42 wrote: rodas1973 wrote: (...) , isso não funciona já alterei o link e nada . Gostaria de deixar isso a funcionar mas não consigo !!!! (...) Sendo que "isso" refere-se a quê concretamente ? OLá bom dia este script de php que visa mostrar a temperatura actual : <?php $cityId = $_GET; if (($cityId == null) || (strcmp($cityId, "")==0)) { $cityId = "12"; } $sock = fsockopen("www.meteo.pt", 80, $errno, $errstr, 10); if (!$sock) { exit($errstr."(".$errno.")n"); } else { fwrite($sock, "GET /pt/previsao/inicial.jsp HTTP"); fwrite($sock, "rn"); $headers = ""; while ($str = trim(fgets($sock, 4096))) $headers .= "$strn"; echo "n"; $body = ""; while (!feof($sock)) $body .= fgets($sock, 4096); PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25 fclose($sock); $needle = "<title>OpenCms - erros</title>"; if ( strcmp($needle, substr($body, strpos($body, $needle, 0), 30)) == 0 ) { exit("Problemas tecnicos "."|0|0"); } //cidade $startText = '<div id="tipTempo'.$cityId.'"'; $endText = '</div>'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $city = htmlentities(substr($body, $pos1, ($pos2-$pos1))."."); //vento $startText = '<div id="tipVento'.$cityId.'"'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $wind = htmlentities(substr($body, $pos1, ($pos2-$pos1))); //tempMax $startText = 'tempo'.$cityId; $pos1 = strpos($body, $startText); $pos2 = strpos($body, $endText, $pos1); $pos2 = strpos($body, $endText, $pos2+10); $temperatures = substr($body, $pos1, ($pos2-$pos1)); $startText = 'tempMax'; $endText = "ºC </td>"; $pos1 = strpos($temperatures, $startText) + strlen($startText) + 2; $pos2 = strpos($temperatures, $endText, $pos1); $tempMax = substr($temperatures, $pos1, ($pos2-$pos1)); $startText = '"tempMin"> '; reply qu sendo que estava a funcionar correctamente eu já alterei o link uma vez q foi alterado pelo site de origem o www.meteo.pt . O mas a mensagem q me retorna é está :arning strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 36 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 42 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 55 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 61 . Max : ºC Min : ºC Jà não sei o q fazer estou perdido , DEsde já um muito obrigado.http://www.phppt.com/components/com_joomlaboard/emoticons/smile.png ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/03/03 11:54 _____________________________________ m42 wrote: rodas1973 wrote: (...) , isso não funciona já alterei o link e nada . Gostaria de deixar isso a funcionar mas não consigo !!!! (...) Sendo que "isso" refere-se a quê concretamente ? PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25 OLá bom dia este script de php que visa mostrar a temperatura actual : <?php $cityId = $_GET; if (($cityId == null) || (strcmp($cityId, "")==0)) { $cityId = "12"; } $sock = fsockopen("www.meteo.pt", 80, $errno, $errstr, 10); if (!$sock) { exit($errstr."(".$errno.")n"); } else { fwrite($sock, "GET /pt/previsao/inicial.jsp HTTP"); fwrite($sock, "rn"); $headers = ""; while ($str = trim(fgets($sock, 4096))) $headers .= "$strn"; echo "n"; $body = ""; while (!feof($sock)) $body .= fgets($sock, 4096); fclose($sock); $needle = "<title>OpenCms - erros</title>"; if ( strcmp($needle, substr($body, strpos($body, $needle, 0), 30)) == 0 ) { exit("Problemas tecnicos "."|0|0"); } //cidade $startText = '<div id="tipTempo'.$cityId.'"'; $endText = '</div>'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $city = htmlentities(substr($body, $pos1, ($pos2-$pos1))."."); //vento $startText = '<div id="tipVento'.$cityId.'"'; $pos1 = strpos($body, $startText) + strlen($startText) + 67; $pos2 = strpos($body, $endText, $pos1); $wind = htmlentities(substr($body, $pos1, ($pos2-$pos1))); //tempMax $startText = 'tempo'.$cityId; $pos1 = strpos($body, $startText); $pos2 = strpos($body, $endText, $pos1); $pos2 = strpos($body, $endText, $pos2+10); $temperatures = substr($body, $pos1, ($pos2-$pos1)); $startText = 'tempMax'; $endText = "ºC </td>"; $pos1 = strpos($temperatures, $startText) + strlen($startText) + 2; $pos2 = strpos($temperatures, $endText, $pos1); $tempMax = substr($temperatures, $pos1, ($pos2-$pos1)); $startText = '"tempMin"> '; reply qu sendo que estava a funcionar correctamente eu já alterei o link uma vez q foi alterado pelo site de origem o www.meteo.pt . O mas a mensagem q me retorna é está :arning PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25 strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 36 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 42 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 55 Warning: strpos() : Offset not contained in string in /home/rotaonli/public_html/rota4/webservices/weather.php on line 61 . Max : ºC Min : ºC Jà não sei o q fazer estou perdido , DEsde já um muito obrigado.http://www.phppt.com/components/com_joomlaboard/emoticons/smile.png ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by m42 - 2009/03/03 17:44 _____________________________________ Pelo que me parece, estás à procura de texto que não existe. faz uma análise da página da meteo.pt que queres analisar e verifica se não terão mudado a estrutura ou outras cenas na página... ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/03/03 17:52 _____________________________________ obrigado isso já consegui descobrir . E já descobri onde ir buscar agora continua sem foncionar o link novo é este :http://www.meteo.pt/extdatasource/prev_locais.jsp?dayPrev=0 . Já fiz o link e não dá :S . Contudo eu já estou disposto a fazer tudo de novo mas acho qu não consigo mas nessecitava mesmo disso a metereologia a funcionar . Obrigado da mesma forma . E caso queira pode adicionar [email protected] ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by m42 - 2009/03/04 11:15 _____________________________________ Boas, O link que apresentas retorna uma página XML. Seria melhor usares por exemplo o SimpleXML, ou o XMLReader... ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by camilla - 2009/03/04 15:16 _____________________________________ Oi boa tarde, O link que vc mostrou retorna uma página xml. No entanto para poder extrair dados de um ficheiro xml, recomendo a seguinte leitura: http://www.ibm.com/developerworks/xml/library/x-xmlphp2.html. Poderia tb fazer da seguinte maneira: <?php $url = "http://www.meteo.pt/extdatasource/prev_locais.jsp?dayPrev=0"; PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25 // Abertura da url para leitura $fp = fopen($url,'r') or die ("Actualizando o sistema de tempo...volte mais tarde"«»); while(!feof($fp)) { @$pagina.=fgets($fp,4096); } fclose($fp); // Definição do inicio e o fim que nós precisamos do ficheiro xml $start="<tag inicio>"; $end="<tag fim>"; $start_position=strpos($pagina, $start); $end_position=strpos($pagina, $end)+strlen($end); $length=$end_position-$start_position; $pagina=substr($pagina, $start_position, $length); // limpeza das tags desnecessárias $pagina = preg_replace("(\t|\r|\n)","",$pagina); $pagina = ereg_replace("<algumas tags do ficheiro para limpeza","",$pagina); $pagina = ereg_replace("<algumas tags para separação>",",",$pagina); /* depois da limpeza das tags tenta colocar os dados separados por uma virgula (,) ou outro simbolo de modo a poderes fazer por exemplo: explode(",", $pagina); Feito isso vc terá guardado os valores num array, e ai voilá percorrer, atribuir, etc Boa sorte! */ ?> Espero não ter complicado. Bom trabalho e me desculpe pelos erros ortográficos, pois no momento estava escrevendo com tanta pressa e sem revisão. B) Post edited by: camilla, at: 2009/03/04 15:19 Post edited by: camilla, at: 2009/03/04 15:20 ============================================================================ Re:olá boa tarde se alguem me puder ajudar Posted by rodas1973 - 2009/03/07 17:26 _____________________________________ Muito obrigada Camila .Sim ajudou bastante .;) :) .Contudo vou ter de rever nesno isto !!! ============================================================================ PHP-PT.com Forum - Comunidade Portuguesa de PHP Joomlaboard Forum Component version: 1.1.4 Stable Generated: 2 October, 2016, 10:25