Изменение значка погоды в Google Weather API

Привет, я просто хочу спросить, как лучше всего изменить значок погоды в Google Weather API, изменив его путь на mysite.com/images/weather, а не на /ig/images/weather. Я видел здесь одну проблему с переполнением стека, но я не знаю, как реализовать ее в своем коде.

вот мой код:

    <?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 } ?>

Большое вам спасибо за вашу помощь


person Frank Sean    schedule 10.02.2011    source источник
comment
Мне просто нужно ‹img src=‹?php echo 'google.com' . $forecast-›icon['data']?›, чтобы указать мой конкретный путь к значкам погоды, есть ли какой-нибудь простой способ сделать это без preg_replace   -  person Frank Sean    schedule 11.02.2011


Ответы (3)


Возможно, используйте функцию php basename для извлечения имени файла значка:

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

Я предлагаю вам использовать функцию PHP preg_replace для замены части URL-адреса. у вас есть в $forecast->icon.

person ChrisJ    schedule 10.02.2011
comment
Привет, спасибо за ваш совет, к сожалению, у меня ограниченные знания в php. Я больше дизайнер, а не разработчик, вы можете уточнить больше, я был бы очень признателен. Благодарность - person Frank Sean; 10.02.2011
comment
ну... прошло около года. Я тоже буду признателен. Кто-нибудь? (нам нужна небольшая помощь в изменении изображений по умолчанию!) - person Roko C. Buljan; 05.03.2011

Ну, в надежде, что это поможет кому-то еще, я нашел решение:

используйте 1_ !!

Вместо того, чтобы писать:

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 } ?>
person Roko C. Buljan    schedule 12.03.2011