2011-02-10 21 views
2

こんにちは私はちょうどGoogle天気予報apiの気象アイコンを変更して、/ ig/images/weatherではなくmysite.com/images/weatherへのパスを変更するのに最適な方法を尋ねます。私はスタックオーバーフローで同じ問題を抱えているのを見ましたが、コードに実装する方法はわかりません。ここgoogle weather apiの天気アイコンを変更する

は私のコードです:

<?php 
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=new-york'); 
$information = $xml->xpath("/xml_api_reply/weather/forecast_information"); 
$current = $xml->xpath("/xml_api_reply/weather/current_conditions"); 
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); 
?> 

<h1>New-York City Weather</h1> 
<div class="weather"> 
<img src="<?php echo 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather" /> 
<div class="condition"><strong>Today</strong><br /> 
<?php echo $current[0]->temp_f['data'] ?>° F,<?php echo $current[0]->condition['data'] ?> 
</div> 
</div> 

<?php foreach ($forecast_list as $forecast) { ?> 

    <div class="weather"> 
     <img src="<?php echo 'http://www.google.com' . $forecast->icon['data']?>" alt="weather" /> 
     <div class="condition"> 
      <strong><?php echo $forecast->day_of_week['data']; ?></strong><br /> 
       <?php echo $forecast->low['data'] ?>° F - <?php echo $forecast->high['data'] ?>° F, 
      <?php echo $forecast->condition['data'] ?> 
     </div> 
    </div> 
<?php } ?> 

私はあなたがTUはあなたが$forecast->iconで持っているURLの一部を置き換えるためにPHP関数preg_replaceを使用することをお勧めあなたの助け

+0

アドバイスありがとうございます。ありがとう –

+0

私は天気アイコンの私の特定のパスを指示するために "

答えて

0

のためにどうもありがとうございます。

使用:

+0

あなたの助言に感謝、残念ながら私はPHP私は本当にありがとうと思います。ありがとうございました –

+0

まあ... 1年ほど経ちました。私もそれを感謝します。誰でも? (デフォルトの画像を変更するのに少し助けてください!) –

0

は、まあ、これは他の誰かが助ける希望で私は解決策見つけstr_replaceを!代わりに、書き込みの

if($forecast->icon['data'] == '/ig/images/weather/sunny.gif') {$forecast->icon['data'] =   'path/to/folder/sunny.png';} 
if($forecast->icon['data'] == '/ig/images/weather/mostly_sunny.gif') {$forecast->icon['data'] =  'path/to/folder/mostly_sunny.png';} 
if($forecast->icon['data'] == '/ig/images/weather/partly_cloudy.gif') {$forecast->icon['data'] = 'path/to/folder/partly_cloudy.png';} 
if($forecast->icon['data'] == '/ig/images/weather/mostly_cloudy.gif') {$forecast->icon['data'] = 'path/to/folder/mostly_cloudy.png';} 
if($forecast->icon['data'] == '/ig/images/weather/chance_of_storm.gif') {$forecast->icon['data'] = 'path/to/folder/chance_of_storm.png';} 

...

ので... $forecast->icon['data']$current[0]->icon['data']

ため

両方だけで使用します。

$iconData = str_replace("/ig/images/weather/", "path/to/folder/", $current[0]->icon['data']); 
$iconData = str_replace(".gif", ".png", $iconData); //if you use different image extension 

<?php foreach ($forecast_conditions as $forecast) : 
    // CUSTOM ICONS 

$iconData2 = str_replace("/ig/images/weather/", "path/to/folder/", $forecast->icon['data']); 
$iconData2 = str_replace(".gif", ".png", $iconData2);//if you use different image extension 

... 
    ?> 

として今、あなたは例のように、今から今から使用新しい$iconData$iconData2上で見ることができます。

<?php 
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=new-york'); 
$information = $xml->xpath("/xml_api_reply/weather/forecast_information"); 
$current = $xml->xpath("/xml_api_reply/weather/current_conditions"); 
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); 
//ADDED: 
$iconData = str_replace("/ig/images/weather/", "path/to/file/", $current[0]->icon['data']); 
$iconData = str_replace(".gif", ".png", $iconData); 
?> 
<h1>New-York City Weather</h1> 
<div class="weather"> 
<img src="<?php echo 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather" /> 
<div class="condition"><strong>Today</strong><br /> 
<?php echo $current[0]->temp_f['data'] ?>° F,<?php echo $iconData ?> 
</div> 
</div> 

<?php foreach ($forecast_list as $forecast) { 
//ADDED 
$iconData2 = str_replace("/ig/images/weather/", "path/to/file/", $forecast->icon['data']); 
$iconData2 = str_replace(".gif", ".png", $iconData2); 
?> 



    <div class="weather"> 
     <img src="<?php echo 'http://www.google.com' . $iconData2 ?>" alt="weather" /> 
     <div class="condition"> 
      <strong><?php echo $forecast->day_of_week['data']; ?></strong><br /> 
       <?php echo $forecast->low['data'] ?>° F - <?php echo $forecast->high['data'] ?>° F, 
      <?php echo $forecast->condition['data'] ?> 
     </div> 
    </div> 
<?php } ?> 
1

は、おそらく、PHPの関数を使用するbasenameアイコンファイルの名前を抽出する:

$iconData = '/my/new/path/' . basename($current[0]->icon['data']);