PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
xml failid teisest serverist?
Postitaja: ervinoro 2011-05-05 21:11:55
http://www.emhi.ee/ilma_andmed/xml/observations.php (xml formaadis, vist)

Sellelt lehelt tahaks ühe konkreetse elemendi väärtust muutuja väärtuseks, kusjuures see võiks vähemalt taaslaadimisel uueneda.

Kas keegi võiks viidata mõnele õpetusele või postitada mõne koodi?
Ette tänades, mina.
RE: xml failid teisest serverist?
Postitaja: andrusny 2011-05-05 21:42:58
Mul on tehtud telekavade vaatamise rakendus, sealt saad snitti võtta.
See kavaXML.php võib ka ära jääda, oleneb, kas lubab otse sellest xml failist võtta, kavade failist ei saanud.


PHP kood:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<!-- 
Creation date27.12.2010 -->
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<
title></title>
<
meta name="description" content="">
<
meta name="keywords" content="">
<
meta name="author" content="Andrus">
<
meta name="generator" content="AceHTML 5 Pro">
<
script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<?php
$tund 
date("H")*60*60;
$min date("i")*60;
$sek date("s");
$aeg time()- ($tund+$min+$sek);
$paev date('w',$aeg);
?>
<script type="text/javascript">
var nrH=0;
var sisud = new Array();
$(document).ready(function(){
var aeg = $("#aeg").val();
var ch = 11;

var paevad = new Array("PÃ&#188;hapäev","Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev");

function vahetaK(){

document.getElementById('pv1').value = paevad[$("#pv").val()];
var linkURL ="kavaXML.php?date="+aeg+"&ch="+ch; // ETV
//if($.browser.msie){linkURL  = "http://m.kava.ee/data.php?date="+aeg+"&channel="+ch+"&default_lang=112&host_id=1";}

$.ajax({
    type: "GET",
    url: linkURL,
    dataType: "xml",
    success:   function parseXml(xml)
 // });
//  parseXml(xml);

{
var nr = 0;
// Programmid
//alert (ch);
  $(xml).find("desc").each(function()
  {
  if($(this).attr("color")=="#FC0"){var v ="#FF0000" ;nrH = nr;peal="<label>"+$(this).attr("name")+"</label>";}else{var v ="#000" ;}

 $("#andmed").append($(this).attr("time") + " -- "); 
$("#andmed").append('<a href=""  title="'+nr+'" onmouseover="sisu(this.innerHTML, this.title, sisud);"><font color="'+v+'">' + $(this).attr("name") +"</font></a><br/>");
sisud[nr] = $(this).text();

nr++;

  });
          var h3 = $("#andmed").innerHeight();
            $("#andmed2").css("height", h3-20);
sisu(peal, nrH, sisud);
}
});
}

vahetaK();
//**********
$("input[name='Kanal']").click(function(){
ch = $("input[name='Kanal']:checked").val();
$("#andmed").empty() ;
vahetaK();
});
//***********
$("#ho").click(function(){
aeg = (aeg*1) +(24*60*60);
var vahe =($("#pv").val()*1)+1;
if(vahe>6){vahe=0;}
document.getElementById('pv').value = vahe;
document.getElementById('pv1').value = paevad[vahe];
$("#andmed").empty() ;
vahetaK();
});
// *********
$("#ho1").click(function(){
aeg = (aeg*1) - (24*60*60);
var vahe =($("#pv").val()*1)-1;
if(vahe<0){vahe=6;}
document.getElementById('pv').value = vahe;
document.getElementById('pv1').value = paevad[vahe];
$("#andmed").empty() ;
vahetaK();
});
// *********

//********
 });
 function sisu(peal, si, sisud){
$("#andmed2").html("<b>" + peal+"</b><br><br>"+sisud[si]) ;
}
</script>
</head>
<style>
body{margin:0px;padding:0px;width:100%;text-align:center;}
#andmed{float:left;width:400px;margin:20px;padding:10px;background:#99B376;text-align:left;}
#andmed2{float:left;width:500px;margin:20px;padding:10px;background:#718457;text-align:left;}
#ccc{position:relative;width:1050px;margin-top:20px;border:solid 1px #000;background:#cccccc;}
#cc{position:relative; width:600px;height:70px;background:#cccccc;padding-top:10px;border:solid 1px #000;margin: auto;margin-top:5px;}
a{text-decoration:none;}
label{color:#FF0000;}
#pv1{text-align:center;font-weight:bold;color:#0A430D;}
</style>
<body>
<div style="position:absolute;left:20px;top:20px;">Sobivus: Opera ainult</div>
<div id="cc">
<input type="hidden" id ="aeg" value="<?php echo $aeg?>">
    <input type="radio" name="Kanal" value="11" checked> ETV
    <input type="radio" name="Kanal" value="12"> KANAL2
    <input type="radio" name="Kanal" value="13"> TV3
    <input type="radio" name="Kanal" value="9">ETV2
    <input type="radio" name="Kanal" value="6"> TV6
    <input type="radio" name="Kanal" value="10"> Kanal11
    <input type="radio" name="Kanal" value="19"> Seitse
    <br>
    
<input type="button" value="Päev tagasi" id="ho1">    
<input type="text" value="" id="pv1">
<input type="button" value="Päev edasi" id="ho">

<input type="hidden" value="<?php echo $paev?>" id="pv">
</div>

<table  id="ccc" align="center"width="1000">
<tr><td>
<!-- <div id="cc" > -->
<div id="andmed"></div>
<div id="andmed2"></div>
<!-- </div> -->
</td></tr>
</table>
</body>
</html>


kavaXML.php

PHP kood:
 
<?php
$date
$_GET['date'];
$ch $_GET['ch'];
if(
$date!=NULL){$date 'date='.$date.'&';}else{$date="";}
if(
$ch==NULL){$ch11;}
//$adr = "http://xmltv.kava.ee/files/11_channeldata.xml"; // ETV
$adr "http://m.kava.ee/data.php?".$date."channel=".$ch."&default_lang=112&host_id=1";
//$xml = simplexml_load_file($adr);
$contents file_get_contents($adr);
//print_r( $xml);
echo $contents?>

RE: xml failid teisest serverist?
Postitaja: rtfm 2011-05-06 10:31:58
näide ilma muutujate ja andmete eksisteerimise kontrollita. $xml on siis objekt mida saad itereerida


PHP kood:
 
<?php
header
("Content-Type: text/html;charset=utf-8");
$xmlstr file_get_contents('http://www.emhi.ee/ilma_andmed/xml/observations.php');
$xml = new SimpleXMLElement($xmlstr);
?>
<?php 
foreach($xml as $city):?>
    <?php foreach($city as $key => $element):?>
        <?php echo $key ': ' trim($element) . '<br />'?>
    <?php endforeach;?>
    <hr>
<?php endforeach;?>
RE: xml failid teisest serverist?
Postitaja: ervinoro 2011-05-06 15:12:24
olen php s üsna algaja seega esimest kava näidist ma pean natuke veel seedima. teise koodiga tuli tulemus selline:
Warning: Cannot modify header information - headers already sent by (output started at /www/zzl.org/p/h/p/phpproov/htdocs/index.php:2) in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 3

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 4

Warning: file_get_contents(http://www.emhi.ee/ilma_andmed/xml/observations.php) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 4

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /www/zzl.org/p/h/p/phpproov/htdocs/index.php:5 Stack trace: #0 /www/zzl.org/p/h/p/phpproov/htdocs/index.php(5): SimpleXMLElement->__construct('') #1 {main} thrown in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 5
RE: xml failid teisest serverist?
Postitaja: rtfm 2011-05-06 15:30:33
Warning: Cannot modify header information - headers already sent by (output started at /www/zzl.org/p/h/p/phpproov/htdocs/index.php:2) in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 3

tähendab seda, et sul on tühikud või reavahed faili alguses ennem headerite defineerimist


Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /www/zzl.org/p/h/p/phpproov/htdocs/index.php on line 4


tähendab seda , et sul see meetod ei tohi väliseid ressursse kasutada , seda saad muuta php.ini -st või kasutada sama päringu tegemiseks muid meetdeid

õpi veakontrollid ise kirjutama
RE: xml failid teisest serverist?
Postitaja: ervinoro 2011-05-06 20:11:47
mul on leht mingises webhostingus, seega ei saa ma seda .ini faili ilmselt muuta? ehk siis kas keegi teab mõng hostingut, kus see oleks lubatud?
RE: xml failid teisest serverist?
Postitaja: andrusny 2011-05-06 21:20:17
TSITEERITUD:
olen php s üsna algaja seega esimest kava näidist ma pean natuke veel seedima.


Seal ei olegi tegelikult php abil XML parsitud, seal kasutatakse JQ parserit.

Põhimõtteliselt siis see osa tegutseb.

PHP kood:
 
  
$(xml).find("desc").each(function()
  {
  if($(
this).attr("color")=="#FC0"){var ="#FF0000" ;nrH nr;peal="<label>"+$(this).attr("name")+"</label>";}else{var ="#000" ;}

 $(
"#andmed").append($(this).attr("time") + " -- "); 
$(
"#andmed").append('<a href=""  title="'+nr+'" onmouseover="sisu(this.innerHTML, this.title, sisud);"><font color="'+v+'">' + $(this).attr("name") +"</font></a><br/>");
sisud[nr] = $(this).text();

nr++;

  });

Viimati muudetud: 06-05-2011 21:23:24
Muutja: andrusny
Põhjus:

RE: xml failid teisest serverist?
Postitaja: ervinoro 2011-05-08 19:03:36
A see hostingu teema, olen sellega väga mööda pannud?
RE: xml failid teisest serverist?
Postitaja: gaal 2011-05-08 19:28:52
Järgneva koodi eelis on, et tegu on asünkroonse pöördumisega ja sinu lehe poole pöördumine ei jää venima EMHI poole pöördumise taha (paar sekki kulub sellele, sõltuvalt mis andmeid sealt vaja on).

a) Põhifailis jquery ja ajax, ajax.php failist tuleb sulle vajalik html

<script type="text/javascript">
$(document).ready(function(){
$.post('ajax.php', {cmd: 'show_emhi'} , function(data) {
//andmed tulevad asünkroonselt
$("#SINU_DOM_ELEMENT").html( data );
});
});
</script>


b) ajax.php töötled EMHI infot

PHP kood:
 
    
if ( !empty($_REQUEST['cmd']) && $_REQUEST['cmd'] == 'show_emhi' ) {        
        echo 
_showEMHI();                        
    }

    
//show EMHI weather 
    
function _showEMHI() {
        
        
$output '';        
        
$url XML_EMHI_URL;    //sulle vajalik EMHI url    
        
$xml = @simplexml_load_file($url);        
        if ( !
$xml ) {
            return 
'';
        }
                       
        foreach( 
$xml->children() as $station) {     
            
//siin sisuliselt sama mis rtfm osutas 
            
$output .= SINU_KOOD_SIIA                        
        
}
      
        return 
$output;                
    } 

Viimati muudetud: 08-05-2011 19:52:46
Muutja: gaal
Põhjus:


Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0966701507568